0
点赞
收藏
分享

微信扫一扫

ssh反向代理实现内网穿透【亲测可用】

Xin_So 2023-01-18 阅读 98

常用内网穿透方式

1、网卡层映射,包括购买公网ip

2、自己搭建内网穿透服务。

3、使用三方平台提供的端口映射、内网穿透服务

本文在文镜老哥的指导下,使用第2种ssh反向代理的方式,通过内网打包服务器,借助外网服务器,实现在家访问我们的打包服务。

一、实现打包机器无密码登录到外网机器

1、添加打包机器ssh公钥到外网服务器

ssh-keygen 
image-20220127202810611 image-20220127202810611
cat id_rsa.pub
image-20220127202810611
cd ../../
cd root/.ssh/
image-20220127202810611
vim authorized_keys
image-20220127202810611
ssh root@81.68.175.xx
image-20220127202810611

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

image-20220127202810611 image-20220127202810611

二、在打包服务器上建立打包机器到外网机器的反向代理

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 
image-20220127202810611

查看外网服务:异常

curl http://81.68.175.xx:9000/
image-20220127202810611
vi /etc/ssh/sshd_config 
image-20220127202810611 image-20220127202810611 image-20220127202810611
service sshd restart

3、进程管理

image-20220127202810611
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/
image-20220127202810611
http://81.68.175.xx:9000/jenkins/
image-20220127202810611
举报

相关推荐

0 条评论