有一台运行在公司内部的服务器绑定了一个公网固定 IP,这台服务器向公网暴露出一些 TCP 以及 WWW 服务 但是企业只有这一个固定公网 IP,现在希望将企业内部的另一台计算机上的 TCP 以及 WWW 服务也暴露到公网上,请问下具体的做法
目前能想到的是让直接接入公网的服务器通过操作系统的端口转发功能,将一些请求转发到另一台企业内部的计算机上 如当外部请求 http://公网 IP:9090 时,会将请求转发到内网 192.168.1.100:9090 上 这样的话,是不是需要这台直接接入公网的计算机有两块网卡?
这方面没什么经验,感谢指点。
1
xiaotianhu 2021-05-21 15:16:46 +08:00
iptables 了解一下
在路由上做更方便一点。 |
2
bin456789 2021-05-21 15:21:30 +08:00 via Android
在暴露的那台电脑安装 nginx,http 反向代理第二台电脑的 www,用 stream 功能代理第二台电脑的 tcp 端口
|
3
Puteulanus 2021-05-21 15:40:38 +08:00
啥系统的,Windows 的话有个叫 passport 的老软件还挺好用的
Linux 的话,特别有 web 服务,如果想共用 80 端口,按域名转发的话,可以按 2L 说的用 Nginx,或者 SNIProxy |
4
yhxx 2021-05-21 15:45:38 +08:00
nginx proxy_pass 就行了吧
|
5
FreeWong OP |
6
Puteulanus 2021-05-21 16:01:55 +08:00
@FreeWong https://sourceforge.net/projects/pjs-passport/ 我们现在用的这个,支持 udp,图形界面操作,感觉还可以。虽然很久没更新了,Win10 也还能用,就是启动图形界面编辑的时候要自己记得右键管理员权限运行
要朝内网转应该是得有两个网卡的,你运行这个的公网机器上得能访问到要转发到的内网机器 |
7
cpstar 2021-05-21 16:08:34 +08:00
windows 系统的 netsh interface portporxy 试试
https://blog.csdn.net/hx7013/article/details/79786407 |
8
prondtoo 2021-05-21 16:08:45 +08:00
socat, iptables
|
9
yitingbai 2021-05-21 16:10:47 +08:00
就是转发, 没别的办法, 但是实现转发的方法有很多, nginx 的反向代理目前用的比较多
|
10
Tink 2021-05-21 16:18:09 +08:00 via iPhone
反代
|
11
clf 2021-05-21 16:22:36 +08:00
反向代理相对来说方便,而且适合后面分别配置域名。
|
12
bin456789 2021-05-21 16:35:44 +08:00 1
认真看了下
”公司内部的服务器绑定了一个公网固定 IP“ 如果是这样的话,大概要两块网卡了 最简单的方法是 添加一个路由器,路由器 wan 接外网,两电脑连接路由器 lan 如果 www 对外不需要公共一个端口,路由器设置端口映射到各个电脑 如果 www 对外要公用一个端口,路由器端口映射 www 到电脑 1 的端口,IIS 反向代理电脑 2 |
13
dyiheng 2021-05-21 16:54:09 +08:00 via iPhone
IIS 加上一个 application request routing 的扩展,配置反向代理
|
14
kiracyan 2021-05-21 17:09:27 +08:00
用户量不是特别大的话直接用 windows 版的 nginx 就行了
|
15
herozzm 2021-05-21 19:25:46 +08:00 via Android
iptables 的 nat,或者 ssh 隧道也行
|
16
cdlnls 2021-05-21 22:16:19 +08:00
这种情况不应该弄个防火墙么?然后在防火墙上设置端口映射
如果是公网 IP 的话,那么应该拉的是专线。如果这个专线和日常办公是同一个网络的话,肯定是会有防火墙或者路由器的,这样直接在防火墙或者路由器上设置端口映射就可以了。 如果专线只是内部的一台服务器用,条件允许的话,建议把专线接入到办公网的防火墙上,再通过防火墙设置。(防火墙应该是支持多个 wan 口的) 如果没有防火墙这种设备,专线是直接插在服务器上的,那我建议装个路由器,用路由器的端口映射功能设置。 最后专线要是只能接在服务器上的话,那最好是做好防护,配好防火墙。然后按照楼上说的用 iptables 的 nat 或者 nginx 代理。 |
17
ryd994 2021-05-21 22:20:20 +08:00 via Android
@kiracyan 千万别用 Windows Nginx
用 iis 再不济用 Apache Windows Nginx 官方严肃反对任何生产环境使用。 Windows 版基于 select 。和高性能一点不沾边。稳定性也很难说。 |
18
no1xsyzy 2021-05-22 01:28:02 +08:00
不是双网卡也有一些诡异的办法,但需要公网和内网在同一个 LAN 下,在同一个 link 上配置多个 addr
(或者网卡和上联交换机支持一根网线上有多个 VLAN,那成本和可维护性还不如双网卡呢) |
19
keepeye 2021-05-22 08:35:44 +08:00
怎么绑定公网 ip 的,不在内网吗?那或许需要再加一块网卡让服务器加入内网,然后做个反向代理就行了。或者买个路由器,把 ip 绑定到路由器上,通过路由器做端口转发
|
20
01802 2021-05-22 09:05:47 +08:00 via Android
两台都挂路由后面分端口就好
|
21
datou 2021-05-24 15:30:20 +08:00
网关上转发端口就行
|
22
10935336 2021-05-25 23:57:12 +08:00 via Android
我现在用的是一台端口转发,一台 dmz
当然两台都用端口转发也行 |
23
cdh1075 2021-05-27 21:40:36 +08:00
弄个路由器,wan 口接公网,lan 口们是子网,把两个服务器接 lan 口上,然后在路由器上弄四条端口转发就行了,单纯跑 nat 和端口转发负载很轻,200 块钱的路由器就绰绰有余(前提是你别买到坑爹货)
|
24
cdh1075 2021-05-27 21:42:04 +08:00
另外,有且路由器同时开启 dmz 和端口转发后行为怪异,所以你如果是新手的话,不如老老实实一条一条的写端口转发
|
25
txydhr 2021-05-28 16:51:40 +08:00 via iPhone
家宽怎么搞就怎么搞
|
26
xdzhang 2021-05-29 18:27:43 +08:00
www 服务都要用 80 口 那就 nginx 反代
|