我有一个远程 Linux Idebian VPS,我想以某种方式将其连接到我的本地局域网并为其分配本地 IP 地址,这样我就可以访问它和所有端口,就像它就在我身边一样。我家里还有一个 Debian 服务器,一切都在路由器 (DD-WRT) 后面。我会创建某种 VPN 来实现这一点吗?如果是这样,简单介绍一下就好了!
答案1
最简单的方法是执行 SSH 隧道并通过隧道安装驱动器。另一个选择是使用 VPN - 这里的关注点/问题是哪种 VPS
如果 VPS 基于 OpenVZ(半虚拟化),那么您需要执行 ssh 隧道,因此我将仅介绍 SSH 方法。
SSH 可以为您提供经过身份验证和加密的远程计算机连接。如果您设置了密钥,则无需密码即可建立这些连接。
- 在您想要登录其他机器的机器上生成公钥和私钥对 - 出于安全原因,我强烈建议您仅使用 SSH2 而不是 SSH1。
ssh-keygen -t dsa
系统将提示您输入一个文件,其中将保存密钥和密码。只需继续并按 Enter 键即可 - 文件将命名为 id_dsa,并且您的私钥将不受密码保护。
完成后,您将在主目录中的 .ssh 目录中看到 id_rsa 和 id_rsa.pub。
- 将公钥 (id_rsa.pub) 复制到远程主机。这是您想要无密码连接的主机。
scp ~/.ssh/id_rsa.pub 远程主机:/
- 登录远程主机并检查 .ssh 目录中是否已有 authorized_keys 文件。如果不存在,请使用以下命令创建它。
触摸〜/ .ssh / authorized_keys
- 在您执行步骤 3 的远程主机上,使用以下命令将您的公钥复制到 authorized_keys 文件。
cat ~/id_rsa.pub>>~/.ssh/authorized_keys
- 您现在已设置为使用无密码 SSH 身份验证。如果您愿意,可以删除或移动 id_rsa.pub 文件。
最后一件事 - 你也应该反向执行此操作 - 这次将文件命名为 server2 或类似名称,以便您知道区别 - 并确保在执行 scp 命令时将该 filename.pub 复制到另一台服务器。
接下来我们进入 SSH 隧道:
隧道是一个非常强大的概念,它允许您连接两台服务器,就像它们是本地连接一样。
ssh -L 本地端口:主机:主机端口 用户@ssh_server -N
其中:-L - 端口转发参数(见下文)localport - 本地端口(选择未被其他服务使用的端口)
host - server that has the port (hostport) that you want to forward
hostport - remote port
-N - do not execute a remote command, (you will not have the shell, see below)
user - user that have ssh access to the ssh server (computer)
ssh_server - the ssh server that will be used for forwarding/tunneling
Without the -N option you will have not only the forwardig port but also the remote shell. Try with and without it to see the difference.
请记住 - 反向操作可能需要略有不同 - 因为您可能需要先进行一些端口转发
最后一件事...
确保设置 USER 并且不要使用 ROOT。为什么 - 因为如果您以任何方式发送了错误的内容 - 您不仅会终止连接,而且还会终止一台或另一台机器...