2台电脑的端口转发问题

现有2台电脑a、b, ab之间网线直连,b长期连接内网,a上部署了fr软件服务器,当a在内网时,其他用户可以通过链接访问a的网页内容,但是a经常需要切换内外网,能不能通过b的端口转发到a,这样其他用户访问a上的bi就不需要等a在内网的状态了,谢谢

引用gpt回答 有帮助的话 采纳一下
是的,可以通过在电脑b上配置端口转发,实现即使电脑a不在内网,也可以通过b访问到a上的服务。
具体可以这样配置:

  1. 在b上确定一个外部可以访问的端口,例如3333
  2. 在b上配置端口转发,将外部端口3333转发到a的内网IP和端口。命令如下:
   1、iptable命令
   iptables -t nat -A PREROUTING -p tcp --dport 3333 -j DNAT --to-destination a的内网ip:a的端口

    2、或者使用socat命令
    socat TCP4-LISTEN:3333,fork TCP4:a的内网ip:a的端口
  1. 保证b可以通过内网ip访问到a(比如在b上配置a的内网ip的路由信息)
  2. 外部用户访问b的3333端口,通过端口转发实现访问到a的服务。
    这样即使a切换内外网,通过b的端口转发功能,可以提供一个外部用户始终可以访问的入口。
    需要注意的是,b的ip需要是公网ip,或者有公网ip的服务器映射到b;如果两台机器都是内网ip,外部用户仍无法直接访问

在电脑配置静态路由试试,可以同时连接内外网

可以通过nginx内网转发(通过访问B来间接访问A):
假设:
B的端口为【172.23.0.11:6666】
A的端口为【172.23.0.12:7777】
因为两台内网是相通的,所以将nginx部署在B上,listen监听6666端口,然后proxy_pass代理到A的端口【172.23.0.2:7777】。