局域网Linux如何反向代理

现在局域网有台Linux系统的机器,想通过外网可以控制这台机器,但是又没有路由器权限,有什么办法可以实现这种方式?以前知道Win下的灰鸽子可以实现反向代理登陆 达到控制的目的。请问下Linux下有木有类似的软件或工具呢?

阅读 9k
4 个回答

应该有一些商业软件可以实现,Linux下的我没关注,这个略过。想要自己实现的话,需要在局域网外设置一台具有公网ip的机器(记为T),然后将T当作跳板来通信。最简单的就是ssh的-R参数,可以将T机器的端口映射到内网服务器的端口,不过这样需要中转一道,延迟、带宽什么的可能比较大。如果条件允许,使用UDP穿透的话效果应该更好,但是实现起来麻烦些。

  1. 可以使用局域网外你可以直接访问到的VPN服务器,局域网内的服务器和你的电脑都连上那个VPN服务器,就可以直接访问局域网内的服务器了。
  2. 局域网内的服务器使用远程ssh端口转发,将远程服务器的某个端口转发到局域网内的服务器。

例如(局域网内的电脑上执行):

ssh -R 2222:localhost:22 117.123.123.123

然后你访问117.123.123.123这台服务器的2222端口,就会转发到局域网内的服务器的22端口了。

使用 ssh 的远程转发或者 UDP 打洞。前者注意默认的 sshd 配置只监听 127.0.0.1,要改个配置项。后者你可以试试 mosh,挺好玩的。

UDP 打洞前先检测下自己的 NAT 类型(比如使用 pystun 程序)。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题