如何通过具有公共 IP 地址的机器使我的计算机可通过互联网访问

如何通过具有公共 IP 地址的机器使我的计算机可通过互联网访问

我想利用协同作用将我的笔记本电脑和另一台机器连接在一起。

它们都在不同的网络上,但我已成功使用 SSH 隧道通过台式机网络上的一台可公开访问的机器(笔记本电脑 -> 中间机器 -> 台式机)从我的笔记本电脑连接到台式机。但是,我想反过来建立连接,即台式机 -> 笔记本电脑。我的笔记本电脑网络上没有可公开访问的机器。

我可以在连接到中间机器的笔记本电脑上运行命令,从而打开返回笔记本电脑的端口隧道吗?我的笔记本电脑运行的是 Ubuntu,其他两台机器运行的是 CentOS。

谢谢

答案1

如果你有一台中间机某处在互联网上,您可以从台式机和笔记本电脑通过 SSH 进入(机器根本不需要在同一个网络上),您可以很容易地通过中间机转发流量:

Step 1 - SSH from Laptop to Middle Machine:
Laptop --------SSH-----> Middle Machine

Step 1b - set up a TCP tunnel back to Laptop:
Laptop --------SSH-----> Middle Machine
      <--RemoteForward--

Step 2 - SSH from Desktop to Middle Machine:
Laptop --------SSH-----> Middle Machine <--SSH-- Desktop
      <--RemoteForward--

Step 2b - set up a TCP tunnel through Middle Machine:
Laptop --------SSH----->   Middle Machine   <--SSH-- Desktop
      <--RemoteForward-- <--LocalForward--

Step 3 - SSH from Desktop through Middle Machine and RemoteForward to Laptop:
Laptop --------SSH----->   Middle Machine   <--SSH-- Desktop
       <--RemoteForward-- <--LocalForward-- <--SSH-- 

SuperUser 上的这个答案关于如何设置它(在该答案中,中间机器名为serverpc,笔记本电脑为officepc,台式机为homepc)。由于您正在运行 SSH-through-SSH,因此会产生一些额外的网络和 CPU 开销,但它出奇地可用。

普通用户可以使用默认配置的 vanilla SSH 完成所有这些操作。您还可以在从台式机到笔记本电脑的最终隧道中使用 SSH 的所有功能 - SSHFS、X 转发、代理转发,等等。

相关内容