openshell 的个人博客 openshell 的个人博客

一天很长,但十年很短。

目录
利用LanProxy+Nginx搭建内网穿透,跟花生壳说再见吧!
/    

利用LanProxy+Nginx搭建内网穿透,跟花生壳说再见吧!

LanProxys是一个开源的内网穿透服务,通过该服务你能够很方便的实现内网穿透,使得内网机器也能很轻松的在公网访问。

前段时间负责了微信公众平台的开发,开发公众号的时候需要一个域名(其实公网ip也行),微信公众号这个后期单独开个文章说,这里单纯讲讲如何搭建内网穿透服务。

我这里用的Docker构建相关服务,多次使用后,我想说Docker大法果然好!

  1. 安装服务(服务器端)

安装Docker

yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
systemctl start docker
docker run hello-world

镜像加速

vim  /etc/docker/daemon.json

添加如下内容

{"registry-mirrors": ["http://hub-mirror.c.163.com"]}

安装LanProxy

git clone https://github.com/fengqiangboy/lanproxy-docker.git lanproxy-docker  
cd lanproxy-docker
#授予运行权限
chmod u+x run_container.sh      
#编辑一下配置文件              
vim proxy-server-0.1/conf/config.properties

编辑一下配置文件,主要是修改后台访问的IP端口和帐号密码。
1572182615271684.png

增加容器端口映射

#增加8090端口
vim run_container.sh

1572183927501452.png

#编译容器
./build_container.sh 
#运行容器
run_container.sh

安装Nginx

#拉取nginx镜像
docker pull nginx

配置nginx

cd /
# 创建主目录
mkdir dockerData
# 创建文件
mkdir -p dockerData/nginx dockerData/nginx/conf dockerData/nginx/logs dockerData/nginx/www dockerData/nginx/ssl
  • dockerData/nginx 用于存放 docker 下 nginx 自定义文件
  • dockerData/nginx/conf 存放 nginx 配置文件
  • dockerData/nginx/log 存放 nginx 日志文件
  • dockerData/nginx/www 存放 nginx 访问的资源文件
  • dockerData/nginx/ssl 存放 ssl 证书

导出配置文件

#临时运行nginx
docker run --name nginx -p 80:80 -d --rm nginx
#导出主配置文件 nginx.conf
docker cp nginx:/etc/nginx/nginx.conf /dockerData/nginx/conf/nginx.conf
#导出配置文件目录
docker cp nginx:/etc/nginx/conf.d /dockerData/nginx/conf
docker stop nginx

ngxinx启动

docker run -d -p 80:80 --name nginx \
-v /dockerData/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /dockerData/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /dockerData/nginx/www:/usr/share/nginx/html \
-v /dockerData/nginx/logs:/var/log/nginx nginx

配置穿透后台转发

此时需要两个子域名,没有子域名可以使用ip+端口的模式代替,下面演示有域名的方式。

先在域名服务商处配置好两个域名:

hd.caiqz.cn  #用于后台登录
oa.caiqz.cn  #通过该域名访问被转发的服务

配置后台入口的转发

cd /dockerData/nginx/conf/conf.d/
cp default.conf hd.caiqz.cn
vim hd.caiqz.cn

1572190120702554.png

注意:docker环境下127.0.0.1需要换成公网ip或者主机内网ip,下面配置穿透客户端的时候也是一样!

在浏览器输入hd.caiqz.cn登录,并配置一个客户端

1572190255887151.png

配置该客户端

其中名称随意

公网端口,即lanproxy服务端的端口

后台IP端口,指客户端需要映射的服务的IP及端口
1572190974627737.png

配置OA转发

cp default.conf oa.caiqz.cn
vim oa.caiqz.cn
docker restart nginx

1572191156796049.png

至此服务端配置完毕

客户端配置

客户端指的是需要被映射服务的主机,客户端同时支持linux及Windows。

linux环境下

#下载客户端
wget http://file.caiqz.cn/Development/network/proxy-java-client-0.1.zip
unzip proxy-java-client-0.1.zip

修改配置

cd proxy-java-client-0.1/conf
vim config.properties
#密匙
client.key=017b780sz8fes47a78252sesscefee0f
ssl.enable=false
ssl.jksPath=test.jks
ssl.keyStorePassword=123456
server.host=穿透服务器的公网ip

#default ssl port is 4993
server.port=4900

运行客户端

cd proxy-java-client-0.1/bin
chmod u+x *
./startup.sh

搭建完毕!


标题:利用LanProxy+Nginx搭建内网穿透,跟花生壳说再见吧!
作者:openshell
地址:http://blog.caiqz.cn/articles/2019/10/28/636.html