一,更新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 -ryum 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

Nexus Repository代理dockerhub_客户端


进入容器:

docker exec -it 容器ID /bin/bash

若遇到报错,则换成docker exec -it 容器ID sh

Nexus Repository代理dockerhub_客户端_02


注意:退出容器命令:exit

修改配置文件:vi ../conf/config.properties

图中画线的部分是用户名与密码,自行修改

Nexus Repository代理dockerhub_服务器_03

保存后,访问公网ip:8090

六,添加用户,下载客户端

账号与密码就是上面你自己修改的。

进去后添加客户端,名称随便,密钥可以自己输入也可以生成随机密钥,这是建立连接的钥匙也是唯一凭证。

Nexus Repository代理dockerhub_docker_04


在配置管理中是你上面添加的客户端,点击编辑进行修改,代理名称随意,公网端口从9001-9100中随便选一个只要没有添加过就行。后端ip端口,127.0.0.1:+你想对外开放的端口服务。图中我是想开放自己电脑的80端口。后面还可以通过编辑进行修改端口,或者添加配置再添加一个端口。

Nexus Repository代理dockerhub_docker_05


截图的配置意思是将内网的80端口映射到服务器的9001端口,也就是访问服务器ip:9001等于访问内网ip:80。

下面的图可以通过状态看客户端是否连接服务器。

Nexus Repository代理dockerhub_centos_06


下载客户端 里面有好多版本,注意自己客户端的系统以及相关环境。

windows客户端

下载这两个就行,最后下载后面那个。打开cmd命令窗,

Nexus Repository代理dockerhub_客户端_07

1.命令

把里面的程序拉到cmd命令框中,后面跟上参数

-s 服务器ip -p 4993 -k 密钥 -ssl true

Nexus Repository代理dockerhub_客户端_08

2.创建快捷方式

若参数填写感觉麻烦,可以创建一个快捷方式,选中快捷方式右键属性,在路径后面空一格,把参数跟在后面,保存后直接点击快捷方式既可启动。

Nexus Repository代理dockerhub_客户端_09


连接成功后,只要不关闭命令框就会一直保持连接。

3.加入开机自启

1、win+R打开运行,输入“regedit”,打开注册表。

2、在注册表中找到如下位置HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

右键"Run"新建一个字符串类型的键值。

Nexus Repository代理dockerhub_客户端_10


3、右键新建的键值,选择“修改”,将数值名称改为 你要启动的程序名称如:有意义就行,数值数据改为 程序所在位置的路径 ,与上面创建快捷键中目标值一样:程序路径+参数

4、最后,再重新启动win10你设置的程序就可以在Win10开机后自己启动了!

若不想使用重复上面,把键值删除既可。

Linux客户端

1.推荐安装java版本的客户端。

Nexus Repository代理dockerhub_客户端_11

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 #使配置文件生效

一般全局变量为大写,若不习惯就设置为小写

Nexus Repository代理dockerhub_centos_12


执行 echo $PROXY 若显示bin的路径则配置成功。

Nexus Repository代理dockerhub_服务器_13


现在在任意文件夹下就可以使用

sh $PROXY/startup.sh #启动内网穿透
sh $PORXY/stop.sh #关闭内网穿透

4.加入开机自启

若想系统开机自己启动脚本。

vim /etc/rc.local
在最后一行把startup.sh的绝对路径加入最后面,保存退出。

Nexus Repository代理dockerhub_服务器_14

后面会讲述lanproxy运行原理与花生壳一样。后面有时间再写下反向代理与正向代理