常用内网穿透方式
1、网卡层映射,包括购买公网ip
2、自己搭建内网穿透服务。
3、使用三方平台提供的端口映射、内网穿透服务
本文在文镜老哥的指导下,使用第2种ssh反向代理的方式,通过内网打包服务器,借助外网服务器,实现在家访问我们的打包服务。
一、实现打包机器无密码登录到外网机器
1、添加打包机器ssh公钥到外网服务器
ssh-keygen


cat id_rsa.pub

cd ../../
cd root/.ssh/

vim authorized_keys

ssh root@81.68.175.xx

2、ssh远程连接一段时间会失效的问题


二、在打包服务器上建立打包机器到外网机器的反向代理
1、内网端口映射到外网 [核心]
ssh -CqTnN -R 81.68.175.xx:9000:127.0.0.1:8080 root@81.68.175.xx &
2、打开公网服务器网管开关
查看内网服务:正常
curl http://127.0.0.1:8080

查看外网服务:异常
curl http://81.68.175.xx:9000/

vi /etc/ssh/sshd_config



service sshd restart
3、进程管理

kill -9 9719
4、nohup后台运行
nohup ssh -CqTnN -R 81.68.175.xx:9000:127.0.0.1:8080 root@81.68.175.xx &
logout
三、重启服务解决失效问题
新建ssh_connect.sh
脚本
#!/bin/bash
APP_NAME=81.68.175.xx:9000:127.0.0.1:8080
echo "try to stop service..."
PID=$(ps -ef | grep $APP_NAME | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]; then
echo Application is already stopped
else
echo kill $PID
kill -9 $PID
fi
echo "start service..."
nohup ssh -CqTnN -R 81.68.175.xx:9000:127.0.0.1:8080 root@81.68.175.xx &
H/30 * * * *
OLD_BUILD_ID=$BUILD_ID
BUILD_ID=dontKillMe
cd /Users/mac/Desktop
sh ssh_connect.sh
BUILD_ID=$OLD_BUILD_ID
exit
四、验证
http://192.168.1.114:8080/jenkins/

http://81.68.175.xx:9000/jenkins/
