
说明:将测试机当作跳板机,通过ssh端口转发访问正式服务器。
域网Server配置SSH免密登录,搭配后面的定时任务,可实现解放手动去云平台配置服务器防火墙规则(因为运营商采用的DHCP协议,公网IP会经常变动)。
注:域网机器需要配置对应的转发端口防火墙规则
1)使用root用户生成公钥和私钥
ssh-keygen -t rsa
在/root/.ssh/目录保存了公钥和使用

id_rsa :私钥文件
id_rsa.pub:公钥文件
2)将公钥copy到需要免密登录的服务器
3)执行命令
# 1、将公钥生成到authorized_keys文件中 cat ~/.ssh/id_rsa_v3_test.pub >> ~/.ssh/authorized_keys # 2、指定公钥登录 ssh -i ~/.ssh/id_rsa_v3_test.pub -N -f -g -L 20017:nacos.gzzhongka.cn:8848 -o ServerAliveInterval=30 root@跳板机
可能会提示公钥权限过高。解决方法:降低权限就行
chmod 0600 id_rsa.pub
xxxxxxxxxx
#测试nacos注册中心
ssh -N -f -g -L 8848:127.0.0.1:8848 root@47.112.224.51
xxxxxxxxxx
#开启防火墙
firewall-cmd --zone=public --add-port=8848/tcp --permanent
因为ssh端口转发有效期只有1天,可配置定时任务解放每天去执行SSH端口映射。
1)创建定时执行的脚本task.sh
xxxxxxxxxx
arr=( \
#转发端口=正式服务器内网IP:端口
#"8849=192.168.0.94:8848" \
)
for str in ${arr[@]};do
address_arr=(${str//=/ })
address_0=${address_arr[0]}
address_1=${address_arr[1]}
pid_=`netstat -tnlp | grep $address_0 | awk '{print $7}' | awk -F "/" '{print \$1}'`
if [ "$pid_" == "" ];then
echo "$(date "+%Y-%m-%d %R:%S") $address_0 > $address_1"
nohup ssh -N -f -g -L $address_0:$address_1 -o ServerAliveInterval=30 root@跳板机IP >>/opt/sh/task.log 2>&1 &
fi
done
2)设置定时任务
xxxxxxxxxx
0 8 * * * sh /opt/sh/task.sh >>/opt/sh/task.log 2>&1
跳板机IP:转发端口
这样设计可以方便内部调试,也避免了可能遭遇外部的DDOS攻击。
注:这是博主手动一个一个字敲的,喜欢的话可以投食,转发请标注原文链接O(∩_∩)O。