美文网首页
在docker容器中运行VPN,中宇万通的TrustMore

在docker容器中运行VPN,中宇万通的TrustMore

作者: 烟流 | 来源:发表于2023-09-11 22:52 被阅读0次

    layout: post
    title: 在docker容器中运行VPN,中宇万通的TrustMore


    由于一些缘故,不得不在服务器上运行中宇万通的VPN.

    观察

    首先中宇万通给的VPN的目录大概是这样:

    linux_client
    linux_client_daemon
    start-client.sh
    

    启动命令:

    sh start-client.sh -addr <IP:PORT> -t 0 -u <UER_NAME> -p "<PASSWORD>"
    

    仔细观察下会发现这个VPN其实是先启动linux_client然后监控8001端口,在用iptables把流量转发到linux_client程序上的,可以执行iptables -L -n -t nat查看

    Chain TRUSTMORE (2 references)
    target     prot opt source               destination         
    ACCEPT     tcp  --  0.0.0.0/0            <HIDE>      tcp dpt:443
    REDIRECT   tcp  --  0.0.0.0/0            <HIDE>         tcp dpt:<HIDE> redir ports 8001
    

    之后就可以访问对方在VPN提供的服务器如:<target_ip>:<target_port>.
    但是这个服务只能在安装了VPN的服务器上面访问,而VPN有是单点登录.
    为此需要再启动个nginx来将对方的服务器暴露出来.


    实践

    先写个nginx.conf配置,和VPN程序放在一起

    worker_processes 4;
    
    events {
        use epoll;
        worker_connections  65535;
    }
    
    stream {
        server {
            listen 996;
            proxy_connect_timeout 10s;
            proxy_timeout 60s;
            proxy_pass <target_ip>:<target_port>;
        }
    }
    

    让我们来写个Dockerfile

    FROM centos:7
    
    # 加入nginx源
    RUN rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
    # 安装iptables,VPN是用iptables来转发流量的
    RUN yum install -y iptables 
    # 以及一堆依赖
    RUN yum install -y net-tools  pciutils dmidecode hdparm
    # 然后自然是安装nginx
    RUN yum install -y nginx
    RUN systemctl enable nginx
    # 把VPN程序复制进容器
    COPY . /vpn
    WORKDIR vpn
    
    RUN chmod +777 linux_client && chmod +777 start-client.sh
    # 复制nginx配置
    COPY nginx.conf /etc/nginx/nginx.conf
    
    
    CMD  nginx && exec sh start-client.sh -addr <VPN_IP:VPN_PORT> -t 0 -u <UER_NAME> -p "<PASSWORD>"
    

    最后完整的目录结构就是这样

    Dockerfile
    linux_client
    linux_client_daemon
    nginx.conf
    start-client.sh
    

    最后打包运行

    docker build -t proxy-vpn .
    docker run -it -p 996:996 proxy-vpn
    

    相关文章

      网友评论

          本文标题:在docker容器中运行VPN,中宇万通的TrustMore

          本文链接:https://www.haomeiwen.com/subject/idjyvdtx.html