制作docker-lanproxy镜像并运行lanpoxy内网穿透
一. 制作docker镜像
1.1 下载lanproxy
源码
github源码页面 https://github.com/ffay/lanproxy
源码下载地址 git@github.com:ffay/lanproxy.git
1.2 制作镜像并上传到华为云
1. clean然后install生成客户端,服务端
proxy-client-0.1
:客户端
proxy-server-0.1
:服务端
2. 创建docker镜像文件
因为要制作服务端镜像
,创建docker-server
文件夹,复制proxy-server-0.1
文件夹
创建Dockerfile
FROM openjdk:8-jdk-alpine
MAINTAINER wanfei shanghai <www19930327@126.com>
RUN mkdir -p /usr/local/proxy-server
COPY proxy-server-0.1/ /usr/local/proxy-server
# 设置账号,密码环境变量,默认值为 admin,后面可以通过docker run -e USERNAME="XXXXXX"修改
ENV USERNAME="admin" PASSWORD="admin"
RUN echo 'USERNAME=' $USERNAME ' ,PASSWORD=' $PASSWORD && \
cd /usr/local/proxy-server/bin && \
chmod +x startup.sh
WORKDIR /usr/local/proxy-server/bin
EXPOSE 8090
EXPOSE 4900
EXPOSE 4993
EXPOSE 50000-50999
# 运行 startup.sh脚本,$USERNAME传递参数到脚本中,不能用 CMD []这种形式,这种方式读取不到变量
CMD sh startup.sh $USERNAME $PASSWORD
创建build_push.sh
#!/usr/bin/env bash
# 制作镜像
docker build -t swr.cn-north-4.myhuaweicloud.com/www19930327/lanproxy:0.1 .
# 上传镜像到华为云
docker push swr.cn-north-4.myhuaweicloud.com/www19930327/lanproxy:0.1
要先登录华为云
https://console.huaweicloud.com/swr/?region=cn-north-4#/app/warehouse/list
生成临时登录
修改config.properties
config.admin.username=admin
config.admin.password=admin
改为
config.admin.username=<USERNAME>
config.admin.password=<PASSWORD>
在
startup.sh
使用sed -i "s/<USERNAME>/$USERNAME/" $CONF_DIR/config.properties
替换docker run -e
自定义的账号,密码
- 删除26行
-Djdk.tls.rejectClientInitiatedRenegotiation=true
- 删除39行
nohup
和2>&1 &
- 在第6行
LOGS_DIR=$DEPLOY_DIR/logs
下添加
# 修改账号密码
USERNAME=$1
PASSWORD=$2
echo '用户账号:' $USERNAME ' ,用户密码:' $PASSWORD
sed -i "s/<USERNAME>/$USERNAME/" $CONF_DIR/config.properties
sed -i "s/<PASSWORD>/$PASSWORD/" $CONF_DIR/config.properties
注意:
如果最后docker运行自动关闭,打印日志docker logs 容器id
出现Syntax error : end of file unexpected (expecting “then”)
错误
解决办法:
在vim下,文件结尾 输入
:set fileformat=unix
修改ubuntu 和linux服务器、 dos等非图形界面冲突
:wq
保存
3. build镜像&&push镜像
我是用
idea
的Terminal
执行的,因为要build
和push
镜像,所以安装了Docker Toolbox
# 查看docker文件夹
wan.fei@RSMRJ19C045 MINGW64 /d/javaProject/ideaMine/lanproxy/distribution/docker-server (master)
$ ls
Dockerfile build_push.sh proxy-server-0.1
# 执行 build_push.sh 脚本 build镜像 push镜像到华为云
wan.fei@RSMRJ19C045 MINGW64 /d/javaProject/ideaMine/lanproxy/distribution/docker-server (master)
$ sh build_push.sh
4. push成功
二. 阿里云服务器运行服务端
参考 https://mp.csdn.net/mdeditor/96924896#14_lanproxyserver_15
2.1 修改
[root@wanfei ~]# cd ~/i/apps/lanproxy/
[root@wanfei lanproxy]# ls
config-data start.sh
[root@wanfei lanproxy]# vi start.sh
# 复制
#!/bin/bash
LANPROXY_DIR=/root/i/apps/lanproxy
docker stop lanproxy
docker rm lanproxy
docker run -d \
--name lanproxy \
--restart=always \
-p 8090:8090 \
-p 4900:4900 \
-p 4993:4993 \
-p 50000-50010:50000-50010 \
-e USERNAME="admin" \
-e PASSWORD="admin" \
-v ${LANPROXY_DIR}/config-data:/root/.lanproxy \
swr.cn-north-4.myhuaweicloud.com/www19930327/lanproxy:0.1
2.2 运行
[root@wanfei lanproxy]# sh start.sh