《微信本地调试》一文中,小编提到了使用ngrok、natapp和花生壳进行内网穿透。但是,想要使用自定义域名,都是要收费的。

本文中,我们要搭建一个免费的内网穿透服务器。内网穿透服务器,可选的软件有lanproxy、frp、n2n等等,今天我们选择的是lanproxy。

原文地址:http://www.voidking.com/dev-lanproxy/

准备

1、一台公网服务器(阿里云)(运行proxy-server)。
2、一台内网pc或服务器(用来被穿透的本地电脑)(运行proxy-client)。

服务端(阿里云)配置

安装java

1、删除自带jdk

rpm -e --nodeps `rpm -qa | grep java`

2、查看yum库中有哪些jdk版本。
yum search java | grep jdk

3、选择java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment版本进行安装。

yum install java-1.8.0-openjdk-devel.x86_64

默认安装目录为/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64

4、配置环境变量
vim /etc/profile

在最后添加:

#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH

5、让修改立即生效
source /etc/profile

6、查看安装结果
javajavacjava -version

安装lanproxy

1、访问lanproxy下载地址,下载proxy-server-0.1.zip,上传到公网服务器(阿里云)。

或者,直接在服务器上下载
wget https://github.com/ffay/lanproxy/files/1274739/proxy-server-0.1.zip

curl -C - -O -L https://github.com/ffay/lanproxy/files/1274739/proxy-server-0.1.zip

2、解压安装
unzip proxy-server-0.1.zip

mv proxy-server-0.1 /usr/local/

3、修改配置文件
vim /usr/local/proxy-server-0.1/conf/config.properties

修改管理员的用户名和密码(不修改直接使用默认)。

4、启动服务
cd /usr/local/proxy-server-0.1/bin
chmod +x startup.sh
./startup.sh

5、访问 http://host_ip:8090 ,即可看到登录界面(lanproxy后台)。(host_ip为阿里云公网ip 或者 也可以使用域名访问)

(如果你改端口了,就用自定义的端口)访问lanproxy后台,然后按照如下图示操作。

image.png
image.png
image.png
image.png

到此为止,我们在lanproxy后台配置好了lanproxy客户端(被穿透的本地电脑),并且配置了一台客户端的密钥和穿透端口。需要注意的是,以上用到的端口都需要在防火墙中对外开放(我用的阿里云,需要在阿里云后台配置安全组策略)。

在阿里云配置nginx反向代理

1、添加域名解析local到公网ip。

2、在nginx虚拟主机配置目录中,添加 web.xingfeng.cool,内容如下:

{
    server {
        listen 80;
        server_name web.xingfeng.cool;
        location / {
                proxy_pass  http://127.0.0.1:8090;
        }
    }
}

3、测试nginx
./nginx -t,也许会提示缺少目录,那么新建目录。
mkdir -p /usr/local/nginx/data/client_body_temp

mkdir -p /usr/local/nginx/data/proxy_temp

4、重启nginx

配置完成后重启 nginx -s reload ,你就可以可以使用你配置代理域名服务访问你阿里云的本地的服务了

以后如果再有本地的服务需要穿透出去的,可以按照相同的方法进行配置

5、访问 web.xingfeng.cool ,即可看到lanproxy后台登录界面。

使用

服务端配置(阿里云本地开发好的proxy-server-0.1 lanproxy后台 配置)

1、登录lanproxy,添加客户端,输入客户端备注名称,生成随机密钥,提交添加。

image.png

2、客户端列表中,配置管理中,都会出现新添加的客户端。

image.png

3、单击配置管理中的客户端,添加配置(每个客户端可以添加多个配置)。

image.png

  • 代理名称,推荐输入客户端要代理出去的端口,或者是客户端想要发布到公网的项目名称。
  • 公网端口,填入一个服务器空闲端口,用来转发请求给客户端。
  • 代理IP端口,填入客户端端口,公网会转发请求给该客户端端口。

接下来我们需要配置客户端(被穿透的本地电脑)。

客户端配置(用来被穿透的本地电脑的配置)

1、访问lanproxy下载地址,下载proxy-java-client-0.1,解压到喜欢的目录。

2、进入proxy-java-client-0.1/conf目录,修改config.properties为:

#与在proxy-server配置后台创建客户端时填写的密钥保持一致;没有服务器可以登录 https://lanproxy.org/ 创建客户端获取秘钥
client.key=7533f855416741d88732954991668715
ssl.enable=true
ssl.jksPath=test.jks
ssl.keyStorePassword=123456

#这里填写实际的proxy-server地址;没有服务器默认即可,自己有服务器的更换为自己的proxy-server(IP)地址
server.host=local.voidking.com

#proxy-server ssl默认端口4993,默认普通端口4900
#ssl.enable=true时这里填写ssl端口,ssl.enable=false时这里填写普通端口
server.port=4993

3、进入proxy-java-client-0.1/bin目录,执行 ./startup.sh,即可启动lanproxy客户端。

4、访问地址 http://web.xingfeng.cool:50000 ,即可看到本地(用来被穿透的本地电脑)访问客户端80端口相同的页面。

至此,代理成功!

使用lanproxy搭建属于自己的内网穿透平台


webxEJIr
95 声望0 粉丝

计算机网络爱好者