如何在两个不同的 IP 地址上使用同一端口的两种不同的服务?
例子:
IP 1:192.168.10.10:
服务:Http 服务器
端口:443
IP 2:192.168.10.11:
服务:SSH 服务器
端口:443
答案1
例如,如果您的 IP 是192.168.10.10
和192.168.10.11
,并且您想sshd
监听443
IP1 上的端口,并httpd
监听443
IP2 上的端口:
添加到您的/etc/ssh/sshd_config
文件:
ListenAddress 192.168.10.10:443
并重新启动 SSH。SSH 现在将监听 IP1 的 443 端口。
添加到您的httpd.conf
文件(假设是 Apache,对于其他 httpd 服务器也应该很容易):
Listen 192.168.10.11:443
并重新启动 httpd。Apache 现在将监听 IP2 的 443 端口。
您没有提到您正在使用什么操作系统,或者您正在使用什么 HTTP 服务器,因此您可能需要查找系统的确切语法或文件位置。
答案2
如果您想要隔离 IP1 ==> NGINX 和 IP2 ==> SSHD,我建议您打开带有 PREROUTING 的 NetFilter:Nginx 在 8443 上监听,SSHD 在 22 上监听;关闭这些端口并对源的 443 端口进行 PAT。
否则,很抱歉,一台服务器不可能有两个进程处理一个网络套接字(TCP / 443),因为系统无法知道哪个进程必须处理这种或那种请求。
我认为你可以这样做:* 实现一种类似反向代理的过程来处理所有请求并将其重新路由到sushi
或apache
;我正在考虑老式的TCP多路复用但xinetd
它似乎是一个肮脏的解决方案(实际上和你的要求一样肮脏。查找信息这里. * 更简单,实现一些基于 Web 的 SSH 面板,例如盖通可下载这里。
希望有帮助?