一,更新yum源
yum update
二,安装需要的软件包,
yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的sudo yum install -y yum-utils device-mapper-persistent-data lvm2
三,设置yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
四,查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
yum install 版本号 # 例如:sudo yum install docker-ce-18.03.1.ce
启动并加入开机自启sudo systemctl start docker sudo systemctl enable docker
通过 Docker,启动 lanproxy 服务
9001-9100端口用于端口映射,4993用于公网服务器与内网服务器建立连接,8090端口是web管理页面
docker run -d \
--name lanproxy-server \
-p 8090:8090 \
-p 4993:4993 \
-p 9001-9100:9001-9100 \
biodwhu/lanproxy
关闭服务器防火墙,
因为有阿里云防火墙足够了。
停止:systemctl stop firewalld.service
重启:systemctl restart firewalld.service
关闭开机自启:systemctl disable firewalld.service
开启开机自启:systemctl enable firewalld.service
注意:使用哪些端口就要在阿里云控制台添加哪些端口,上面我们要使用4993与8090,9001-9100端口都要开启,
9001/9100就代表开放9001-9100端口。
五,进入docker容器修改配置文件
查看所有容器:docker ps -a
查看运行的容器:docker ps
进入容器:
docker exec -it 容器ID /bin/bash
若遇到报错,则换成docker exec -it 容器ID sh
注意:退出容器命令:exit
修改配置文件:vi ../conf/config.properties
图中画线的部分是用户名与密码,自行修改
保存后,访问公网ip:8090
六,添加用户,下载客户端
账号与密码就是上面你自己修改的。
进去后添加客户端,名称随便,密钥可以自己输入也可以生成随机密钥,这是建立连接的钥匙也是唯一凭证。
在配置管理中是你上面添加的客户端,点击编辑进行修改,代理名称随意,公网端口从9001-9100中随便选一个只要没有添加过就行。后端ip端口,127.0.0.1:+你想对外开放的端口服务。图中我是想开放自己电脑的80端口。后面还可以通过编辑进行修改端口,或者添加配置再添加一个端口。
截图的配置意思是将内网的80端口映射到服务器的9001端口,也就是访问服务器ip:9001等于访问内网ip:80。
下面的图可以通过状态看客户端是否连接服务器。
下载客户端 里面有好多版本,注意自己客户端的系统以及相关环境。
windows客户端
下载这两个就行,最后下载后面那个。打开cmd命令窗,
1.命令
把里面的程序拉到cmd命令框中,后面跟上参数
-s 服务器ip -p 4993 -k 密钥 -ssl true
2.创建快捷方式
若参数填写感觉麻烦,可以创建一个快捷方式,选中快捷方式右键属性,在路径后面空一格,把参数跟在后面,保存后直接点击快捷方式既可启动。
连接成功后,只要不关闭命令框就会一直保持连接。
3.加入开机自启
1、win+R打开运行,输入“regedit”,打开注册表。
2、在注册表中找到如下位置HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
右键"Run"新建一个字符串类型的键值。
3、右键新建的键值,选择“修改”,将数值名称改为 你要启动的程序名称如:有意义就行,数值数据改为 程序所在位置的路径 ,与上面创建快捷键中目标值一样:程序路径+参数
4、最后,再重新启动win10你设置的程序就可以在Win10开机后自己启动了!
若不想使用重复上面,把键值删除既可。
Linux客户端
1.推荐安装java版本的客户端。
2.配置文件
配置文件在conf文件夹下,用记事本打开config.properties
配置如下
client.key=密钥
ssl.enable=true#修改为true
ssl.jksPath=test.jks
ssl.keyStorePassword=123456
server.host=公网服务器IP
#default ssl port is 4993
server.port=4993
保存退出。
使用sh命令启动既可。
然后刷新查看客户端是否在线,在线即连接成功。
3.启动,关闭命令
其他版本开启连接后关闭比较麻烦,这个有专门的开启与关闭命令
bin目录下的startup.sh是开启程序脚本,stop.sh是关闭服务脚本。
sh startup.sh #开启服务
sh stop.sh #关闭服务
startup.bat是window系统的脚本不用理会。
3.设置便捷的启动或关闭服务
1.把bin目录加入环境变量启动失败
本来想着把bin目录路径加入到系统环境中,这样随地运行命令,但不知为什么,虽然脚本执行了但没有启动服务,就很奇怪,如果有大佬知道还望赐教。
2.自定义系统变量
上面设置失败后,想着自己定义一个系统变量,储存bin的路径
我的客户端安装在/root目录下
所以bin路径是:/root/proxy-java-client-0.1/bin
思路
当执行 sh $PROXY/startuop.sh 就相当于 sh /root/proxy-java-client-0.1/bin/startup.sh
这样就减少代码的输入量。并且实现也没有遇到上面的问题。
执行
vim /etc/profile
#在最后面加入这句话
export PROXY=/root/proxy-java-client-0.1/bin # PROXY就是自己定义的系统变量,后面就是bin目录的路径
#保存后,执行
source /etc/profile #使配置文件生效
一般全局变量为大写,若不习惯就设置为小写
执行 echo $PROXY
若显示bin的路径则配置成功。
现在在任意文件夹下就可以使用
sh $PROXY/startup.sh #启动内网穿透
sh $PORXY/stop.sh #关闭内网穿透
4.加入开机自启
若想系统开机自己启动脚本。
vim /etc/rc.local
在最后一行把startup.sh的绝对路径加入最后面,保存退出。
后面会讲述lanproxy运行原理与花生壳一样。后面有时间再写下反向代理与正向代理