# 两种端口复用方式
# 第一种 sslh方式
CentOS 6
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
CentOS 7
# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum install sslh -y
默认情况下,web服务器监听所有网络接口,确保web服务器只监听localhost:443而不是*:443,修改配置文件后需要重启web服务器生效
修改sslh配置文件
# vi /etc/sslh.cfg
sed -i 's/thelonious/0.0.0.0/g' /etc/sslh.cfg
# Change hostname with your external address name.
listen:
(
{ host: "0.0.0.0"; port: "443"; }
);
设置自启,并启动sshld服务
systemctl restart sslh
systemctl enable sslh
测试sslh服务是否运行正常
$ ps -ef | grep sslh
$ ssh -p 443 root@localhost
# 第二种 iptables方式 (如果禁用iptalble就不可以用喽 )
# 端口复用
# 端口复用链
iptables -t nat -N LETMEIN
# 端口复用规则
iptables -t nat -A LETMEIN -p tcp -j REDIRECT --to-port 22
# 开启开关
iptables -A INPUT -p tcp -m string --string 'threathuntercoming' --algo bm -m recent --set --name letmein --rsource -j ACCEPT
# 关闭开关
iptables -A INPUT -p tcp -m string --string 'threathunterleaving' --algo bm -m recent --name letmein --remove -j ACCEPT
# let's do it
iptables -t nat -A PREROUTING -p tcp --dport 10050 --syn -m recent --rcheck --seconds 3600 --name letmein --rsource -j LETMEIN
# 去其他主机测试
echo threathuntercoming | socat - tcp:10.69.15.159:10080
然后就可以链接了
ssh root@10.69.15.159 -p 10050