我有一个笔记本电脑,我主要用作桌面,但偶尔会移动networking。 我有一个静态地址的VPS,我想转发端口从VPS到笔记本电脑,以便我可以从公共地址到笔记本电脑,即使笔记本电脑是在没有端口转发设置的路由器后面。
这可能通过在启动时在笔记本电脑上运行命令/脚本?
一切都在运行Linux,如果有关系的话,我试图将minecraft的stream量从公共地址和无内存转发到一个有很多内存的笔记本电脑,但没有偶尔会移动到不同networking的公共地址。 不知怎的,这是可能的吗?
预先感谢您的帮助。
通常的方法是创build一个VPN(例如使用OpenVPN)。 但是你也可以使用SSH。
ssh -R [bind_address:]port:host:hostport
您可以通过使用没有密码的密钥来自动执行此操作,但中断的SSH连接不会自动重新启动。 因此,从循环进行SSH调用将是有用的。 OpenVPN会更有用。
编辑1
如果你想转发其他远程地址比本地主机不要忘记都把
GatewayPorts yes
在服务器的sshd_config文件中,然后重新启动服务器。 你必须使用ssh命令的这些格式之一:
-R 1.2.3.4:port:host:hostport -R \*:port:host:hostport # the \ being for the shell only -R :port:host:hostport
host是本地的地址(通常是localhost或主机的其他IP地址之一)。
正如Hauke Laging正确指出的 – ssh连接可能会中断。
您应该使用autossh自动启动并重新启动失败的隧道。
在~/.ssh/config文件中,你可以像这样定义一个端口:
Host alias HostName 12.34.56.78 [Port 12345] [User patrick] [LocalForward 6900 localhost:6900]
也许在笔记本电脑上使用dyndns?
或者你可以添加一个小的Web脚本到VPS(脚本将更新防火墙),笔记本电脑可以在启动时用wget / curl请求该页面。
脚本可以是bash / shell脚本,并通过ssh执行,但是从shell脚本(例如$ _SERVER ['REMOTE_ADDR'])find连接IP可能会更复杂。