在两个 IP 上使用相同的端口进行 http/ssh

在两个 IP 上使用相同的端口进行 http/ssh

如何在两个不同的 IP 地址上使用同一端口的两种不同的服务?

例子:

IP 1:192.168.10.10:

服务:Http 服务器

端口:443

IP 2:192.168.10.11:

服务:SSH 服务器

端口:443

答案1

例如,如果您的 IP 是192.168.10.10192.168.10.11,并且您想sshd监听443IP1 上的端口,并httpd监听443IP2 上的端口:

添加到您的/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),因为系统无法知道哪个进程必须处理这种或那种请求。

我认为你可以这样做:* 实现一种类似反向代理的过程来处理所有请求并将其重新路由到sushiapache;我正在考虑老式的TCP多路复用xinetd它似乎是一个肮脏的解决方案(实际上和你的要求一样肮脏。查找信息这里. * 更简单,实现一些基于 Web 的 SSH 面板,例如盖通可下载这里

希望有帮助?

相关内容