有时候会出现多个服务需要使用同一个端口的情况,除了换端口以外,还有一个解决办法——使用sslh进行端口复用。下面介绍Debian下ssl/ssh复用443端口的配置方法。
一、前提
首先确保nginx正确配置了https页面,并且只监听本机443端口(localhost:443,其他端口也可);openssh可以保持监听22端口不变。
然后就是安装sslh:
apt-get install sslh
若出现提示框要求选择是xinetd还是standalone的时候,选择standalone。
二、配置sslh
sslh的配置很简单,就是修改/etc/default/sslh文件:
RUN=yes
DAEMON=/usr/sbin/sslh
DAEMON_OPTS="--user sslh --listen ***.***.***.***:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"
其中,***.***.***.***是你运行这些服务的公网地址,例如VPS的公网IP。
配置好以后,可以重启sslh服务,或者重启机器。
三、测试
使用putty等工具访问443端口,以及使用浏览器访问https页面,相应的SSH/SSL请求应该能够正常返回。
本文为悠然居(https://wordpress.youran.me/)的原创文章,转载请注明出处!
写两个socket占用一个服务端看看效果….
请问listen ***.***.***.***那个,我可以写127.0.0.1么?
CS的C和S都在本地..
最好不要写写127.0.0.1,因为可能会和https的监听端口冲突。或者你可以把https的默认端口改成其他的,不要都用443就是了。
测试自己写的两个程序就不用管这么多了,127.0.0.1也没问题。反正只要不要造成一个IP+端口上绑定多个服务就行了。