基于阿里云服务器使用netty进行内网穿透,访问内网jenkins

Mars 2019年11月03日 64次浏览

前提

  1. 需要一台公网服务器,如阿里云服务器。
  2. 需要被穿透的内网服务器,如自己的笔记本电脑。

获取netty程序

原作者github地址 由于是java写的,因此自己拿到源码做了一些自定义更改。

公网启动netty服务端程序

1.创建一个启动脚本 mkdir startProxy.sh
2.写入内容
	#!/bin/sh
	nohup java -jar natx-server-1.0.2.jar -port 7731 -password 123lmy >proxyServer.log 2>&1 &
3.赋予执行权限  chmod 777 startProxy.sh
4.使用./startProxy.sh启动服务端,可以查看当前目录下的日志文件:proxyServer.log

内网启动netty客户端程序

1.创建一个启动脚本 mkdir startProxy.sh
2.写入内容
	#!/bin/sh
	nohup java -jar natx-server-1.0.2.jar -server_addr 47.96.158.x -server_port 7731 -password 123lmy -proxy_addr localhost -proxy_port 10628 -remote_port 10628 >proxyClient.log 2>&1 &

	server_addr Natx 服务端的网络地址47.96.158.x,即 Natx 服务端运行的服务器外网 IP 或 hostname
	server_port Natx 服务端的端口
	password Natx 服务端的 password
	proxy_addr 被代理的应用网络地址
	proxy_port 被代理的应用端口号
	remote_port Natx 服务端对外访问该应用的端口
3.赋予执行权限  chmod 777 startProxy.sh
4.使用./startProxy.sh启动客户端,可以查看当前目录下的日志文件:proxyClient.log

之后内网安装jenkins测试

当然,可以随便用一个docker的web应用测试即可,我只是顺带需要搭建jenkins环境

1、使用docker命令下载Jenkins	
 	sudo docker pull jenkins
2、创建用于存放jenkins的文件夹
	mkdir /home/var/jenkins
3、cd进入/home/var/目录,设置jenkins文件夹的归属用户UID为1000
	sudo chown -R 1000:1000 jenkins/
4、启动Jenkins
	sudo docker run  -p 10628:8080  --name jenkins  -v /home/var/jenkins:/var/jenkins_home jenkins
5.查看 docker ps jenkins

6.任意设备访问外网ip+port即可,如:47.96.158.x:10628即可到jenkins页面
注:如果访问失败,先确定阿里云是否打开了相关端口,如这里的10628
7.进入容器查看jenkins密码
sudo docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword

后续

jenkins 安装报错(java11)、阿里云非docker方式安装jenkins均可参考:https://blog.csdn.net/qq_40695278/article/details/102761674