硬件准备
- 云服务器一台
- 已备案的域名
- 本地电脑(我这里是win10系统)
云服务器环境准备
- docker (云服务器docker搭建)
- nginx(我这里用的是Openresty)
- java
本地电脑环境准备
- maven
- git
- java
最终实现目标
实现访问 http://云服务器ip:9000 相当于访问 http://127.0.0.1:8001
docker安装lanproxy
- 先在/root下创建一个文件夹lanproxy
- 创建两个文件
第一个文件夹
mkdir config-data
第二个启动lanproxy的docker脚本
docker run -d \
--name lanproxy-server \
-p 8090:8090 \
-p 4900:4900 \
-p 4993:4993 \
-p 9000-9100:9000-9100 \
--restart=always \
-e LANPROXY_USERNAME="admin" \
-e LANPROXY_PASSWORD="admin" \
-v ${LANPROXY_DIR}/config-data:/root/.lanproxy franklin5/lanproxy-server
- 启动lanproxy
sh start.sh
第一次启动如果没有下载docker镜像会下载一会
我这里已经下载了所有没有演示
- docker 查看运行结果
docker ps
- 本地访问lanproxy控制台
http://云服务器ip:8090
当然这里前提是需要在云服务器控制台设置防火墙把8090端口打开
我这里是腾讯云服务器,阿里云差不多
输入用户名和密码
就是start.sh脚本里设置的(admin,admin)
到这里lanproxy就已经安装完成了
配置nginx
- 实现lanproxy.域名访问到lanproxy控制台
server {
listen 80;
server_name lanproxy.域名;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://云服务器ip:8090;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
添加域名解析
修改后重启nginx
远程访问试试
访问成功
到这里nginx就配置完了
lanproxy控制台配置
名称随便取,填完提交即可
这里相当于使访问云服务器的9000端口便相当于访问本地的8001端口
lanproxy客户端配置
先去下载客户端
码云下载地址
下载到本地
进入到文件夹中
输入cmd 打开黑窗口
打包
mvn package
生成一个文件 进去
进入config文件夹
修改配置
client.key就是下面的密钥
修改完后退出到bin目录
进去双击启动
访问测试
先在本地看看8001端口是否正常运行
测试没问题
替换成云服务ip:9000再测试
这里记得先把云服务器的防火墙9000端口打开
也没问题
但是用IP:端口方式访问不太好
不计较的可以忽略下面内容
修改nginx进行代理
使访问win.域名相当于访问云服务器的9000端口
server {
listen 80;
server_name win.域名;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location / {
proxy_pass http://云服务器ip:9000;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
重启nginx
添加域名解析 打开防火墙9000端口
再次访问
多端口代理
上面使用9000端口穿透了本地的8001端口
如果要穿透本地的其他端口
那就再添加几条配置呗
多大的事!
记得打开防火墙端口
就这?