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

2021-05-21 15:11:50 +08:00
 FreeWong

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

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

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

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

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

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

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

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

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

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

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

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

(或者网卡和上联交换机支持一根网线上有多个 VLAN,那成本和可维护性还不如双网卡呢)
keepeye
2021-05-22 08:35:44 +08:00
怎么绑定公网 ip 的,不在内网吗?那或许需要再加一块网卡让服务器加入内网,然后做个反向代理就行了。或者买个路由器,把 ip 绑定到路由器上,通过路由器做端口转发
01802
2021-05-22 09:05:47 +08:00
两台都挂路由后面分端口就好

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/778381

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX