V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
测试工具
SmokePing
IPv6 访问测试
Sponsored by
LinkedIn
不坐班的神仙工作 · 去任何你想去的地方远程,赚一线城市的工资
2000 个不用出门 Social 的全球远程工作,帮助 V2EX 的小伙伴开启全新的工作方式。
Promoted by LinkedIn
FreeWong
V2EX  ›  宽带症候群

只有一个公网固定 IP,怎么向公网暴露两台服务器的服务

  •  
  •   FreeWong · 2021-05-21 15:11:50 +08:00 · 3587 次点击
    这是一个创建于 496 天前的主题,其中的信息可能已经有所发展或是发生改变。

    有一台运行在公司内部的服务器绑定了一个公网固定 IP,这台服务器向公网暴露出一些 TCP 以及 WWW 服务 但是企业只有这一个固定公网 IP,现在希望将企业内部的另一台计算机上的 TCP 以及 WWW 服务也暴露到公网上,请问下具体的做法

    目前能想到的是让直接接入公网的服务器通过操作系统的端口转发功能,将一些请求转发到另一台企业内部的计算机上 如当外部请求 http://公网 IP:9090 时,会将请求转发到内网 192.168.1.100:9090 上 这样的话,是不是需要这台直接接入公网的计算机有两块网卡?

    这方面没什么经验,感谢指点。

    26 条回复    2021-05-29 18:27:43 +08:00
    xiaotianhu
        1
    xiaotianhu  
       2021-05-21 15:16:46 +08:00
    iptables 了解一下
    在路由上做更方便一点。
    bin456789
        2
    bin456789  
       2021-05-21 15:21:30 +08:00 via Android
    在暴露的那台电脑安装 nginx,http 反向代理第二台电脑的 www,用 stream 功能代理第二台电脑的 tcp 端口
    Puteulanus
        3
    Puteulanus  
       2021-05-21 15:40:38 +08:00
    啥系统的,Windows 的话有个叫 passport 的老软件还挺好用的

    Linux 的话,特别有 web 服务,如果想共用 80 端口,按域名转发的话,可以按 2L 说的用 Nginx,或者 SNIProxy
    yhxx
        4
    yhxx  
       2021-05-21 15:45:38 +08:00
    nginx proxy_pass 就行了吧
    FreeWong
        5
    FreeWong  
    OP
       2021-05-21 15:55:18 +08:00
    @xiaotianhu @bin456789 @Puteulanus @yhxx 感谢各位。。 是 Windows 系统,目前上面几位朋友提到的方法哪种方式实现比较容易些。。。
    Puteulanus
        6
    Puteulanus  
       2021-05-21 16:01:55 +08:00
    @FreeWong https://sourceforge.net/projects/pjs-passport/ 我们现在用的这个,支持 udp,图形界面操作,感觉还可以。虽然很久没更新了,Win10 也还能用,就是启动图形界面编辑的时候要自己记得右键管理员权限运行

    要朝内网转应该是得有两个网卡的,你运行这个的公网机器上得能访问到要转发到的内网机器
    cpstar
        7
    cpstar  
       2021-05-21 16:08:34 +08:00
    windows 系统的 netsh interface portporxy 试试
    https://blog.csdn.net/hx7013/article/details/79786407
    prondtoo
        8
    prondtoo  
       2021-05-21 16:08:45 +08:00
    socat, iptables
    yitingbai
        9
    yitingbai  
       2021-05-21 16:10:47 +08:00
    就是转发, 没别的办法, 但是实现转发的方法有很多, nginx 的反向代理目前用的比较多
    Tink
        10
    Tink  
       2021-05-21 16:18:09 +08:00 via iPhone
    反代
    clf
        11
    clf  
       2021-05-21 16:22:36 +08:00
    反向代理相对来说方便,而且适合后面分别配置域名。
    bin456789
        12
    bin456789  
       2021-05-21 16:35:44 +08:00   ❤️ 1
    认真看了下
    ”公司内部的服务器绑定了一个公网固定 IP“
    如果是这样的话,大概要两块网卡了

    最简单的方法是
    添加一个路由器,路由器 wan 接外网,两电脑连接路由器 lan

    如果 www 对外不需要公共一个端口,路由器设置端口映射到各个电脑
    如果 www 对外要公用一个端口,路由器端口映射 www 到电脑 1 的端口,IIS 反向代理电脑 2
    dyiheng
        13
    dyiheng  
       2021-05-21 16:54:09 +08:00 via iPhone
    IIS 加上一个 application request routing 的扩展,配置反向代理
    kiracyan
        14
    kiracyan  
       2021-05-21 17:09:27 +08:00
    用户量不是特别大的话直接用 windows 版的 nginx 就行了
    herozzm
        15
    herozzm  
       2021-05-21 19:25:46 +08:00 via Android
    iptables 的 nat,或者 ssh 隧道也行
    cdlnls
        16
    cdlnls  
       2021-05-21 22:16:19 +08:00
    这种情况不应该弄个防火墙么?然后在防火墙上设置端口映射

    如果是公网 IP 的话,那么应该拉的是专线。如果这个专线和日常办公是同一个网络的话,肯定是会有防火墙或者路由器的,这样直接在防火墙或者路由器上设置端口映射就可以了。

    如果专线只是内部的一台服务器用,条件允许的话,建议把专线接入到办公网的防火墙上,再通过防火墙设置。(防火墙应该是支持多个 wan 口的)

    如果没有防火墙这种设备,专线是直接插在服务器上的,那我建议装个路由器,用路由器的端口映射功能设置。

    最后专线要是只能接在服务器上的话,那最好是做好防护,配好防火墙。然后按照楼上说的用 iptables 的 nat 或者 nginx 代理。
    ryd994
        17
    ryd994  
       2021-05-21 22:20:20 +08:00 via Android
    @kiracyan 千万别用 Windows Nginx
    用 iis 再不济用 Apache
    Windows Nginx 官方严肃反对任何生产环境使用。
    Windows 版基于 select 。和高性能一点不沾边。稳定性也很难说。
    no1xsyzy
        18
    no1xsyzy  
       2021-05-22 01:28:02 +08:00
    不是双网卡也有一些诡异的办法,但需要公网和内网在同一个 LAN 下,在同一个 link 上配置多个 addr

    (或者网卡和上联交换机支持一根网线上有多个 VLAN,那成本和可维护性还不如双网卡呢)
    keepeye
        19
    keepeye  
       2021-05-22 08:35:44 +08:00
    怎么绑定公网 ip 的,不在内网吗?那或许需要再加一块网卡让服务器加入内网,然后做个反向代理就行了。或者买个路由器,把 ip 绑定到路由器上,通过路由器做端口转发
    01802
        20
    01802  
       2021-05-22 09:05:47 +08:00 via Android
    两台都挂路由后面分端口就好
    datou
        21
    datou  
       2021-05-24 15:30:20 +08:00
    网关上转发端口就行
    10935336
        22
    10935336  
       2021-05-25 23:57:12 +08:00 via Android
    我现在用的是一台端口转发,一台 dmz
    当然两台都用端口转发也行
    cdh1075
        23
    cdh1075  
       2021-05-27 21:40:36 +08:00
    弄个路由器,wan 口接公网,lan 口们是子网,把两个服务器接 lan 口上,然后在路由器上弄四条端口转发就行了,单纯跑 nat 和端口转发负载很轻,200 块钱的路由器就绰绰有余(前提是你别买到坑爹货)
    cdh1075
        24
    cdh1075  
       2021-05-27 21:42:04 +08:00
    另外,有且路由器同时开启 dmz 和端口转发后行为怪异,所以你如果是新手的话,不如老老实实一条一条的写端口转发
    txydhr
        25
    txydhr  
       2021-05-28 16:51:40 +08:00 via iPhone
    家宽怎么搞就怎么搞
    xdzhang
        26
    xdzhang  
       2021-05-29 18:27:43 +08:00
    www 服务都要用 80 口 那就 nginx 反代
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1680 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 17:12 · PVG 01:12 · LAX 10:12 · JFK 13:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.