Docker下部署socks5和pptp服务端,实现代理上网

Docker下部署socks5和pptp服务端,实现代理上网

在日常工作中星哥经常要搭建socks5(以下称为ss5)和pptp,来实现代理上网,之前一直使用脚本安装,有些不方便想想能不能用docker一键部署。

socks5和PPTP(Point-to-Point Tunneling Protocol)作为常见的和代理工具,已经成为了用户获取隐私保护和突破网络限制的关键工具。

本文将介绍如何在Docker容器中部署SS5和PPTP服务端,为您的网络带来更强的安全性和隐私保护。

准备工作

  • 云服务器、NAS、虚拟机等 【 阿里云优惠: https://y.xgss.net/aliyun 或 腾讯云优惠: https://y.xgss.net/tx
  • 本篇文章在Centos7.9系统下演示,当然其他支持Docker系统亦可
  • 安装docker和docker-compose 【本篇文章不细讲,可以看星哥之前的教程或者官方文档】

Docker部署ss5服务器

我们使用以下命令启动一个 Docker 容器:

启动命令

复制代码
docker run -itd --restart always \
--name socks5 \
-p 1080:1080 \
-e PROXY_USER=myuser \
-e PROXY_PASSWORD=mypassword \
-e PROXY_SERVER=0.0.0.0:1080 xkuma/socks5

命令解释

复制代码
1. docker run:
这是启动一个新的容器的基础命令,表示运行一个新的容器实例。

2. -itd:
这个参数包含了三个选项:

-i:表示"交互式",即保持容器的标准输入流打开,允许在容器内部进行交互。
-t:分配一个伪终端,用于控制台输出。
-d:表示"后台运行"(detached),即容器在后台运行,而不是占用当前的终端。
3. --restart always:
表示容器在退出时会自动重启。如果容器因任何原因停止,它会自动尝试重新启动。此设置适合需要长期运行的服务,例如代理服务。

4. --name socks5:
指定容器的名字为socks5。容器可以通过名字来访问,而不需要使用容器ID。

5. -p 1080:1080:
映射容器内的端口到主机系统的端口。在这种情况下,容器内的1080端口会映射到主机的1080端口。由于Socks5代理通常使用1080端口,所以这是暴露代理端口的设置。

6. -e PROXY_USER=myuser:
通过环境变量传递代理的用户名。容器启动时,PROXY_USER环境变量会设置为myuser,用于Socks5代理认证的用户名。

7. -e PROXY_PASSWORD=mypassword:
通过环境变量传递代理的密码。容器启动时,PROXY_PASSWORD环境变量会设置为mypassword,用于Socks5代理认证的密码。

8. -e PROXY_SERVER=0.0.0.0:1080:
通过环境变量配置代理服务的监听地址和端口。PROXY_SERVER设置为0.0.0.0:1080,表示代理服务会监听所有网络接口上的1080端口。

9. xkuma/socks5:
这是Docker镜像的名字。在这里,xkuma/socks5是一个公开的Socks5代理镜像。它包含了Socks5代理服务的所有必要代码和配置,能够在容器中运行一个Socks5代理服务。

查看状态

复制代码
# docker ps
CONTAINER ID   IMAGE                COMMAND                  CREATED          STATUS          PORTS                    NAMES
df197d1987a5   xkuma/socks5         "/bin/scoks5"            4 seconds ago    Up 3 seconds    0.0.0.0:1080->1080/tcp   socks5

开放端口

服务器的防火墙或者云服务器的安全组策略都需要打开 1080 端口。

这里我只演示centos7的命令

iptables

复制代码
iptables -A INPUT -p tcp --dport 1080  -j ACCEPT
service iptables save
systemctl restart iptables

firewalld

复制代码
# firewall-cmd --zone=public --add-port=1080/tcp --permanent
# firewall-cmd --reload

客户端验证

这里我使用火狐浏览器的FoxyProxy插件,当然你也可以使用其他支持ss5的工具

使用ip查询

至此使用Docker部署ss5服务器完成。

Docker部署PPTP服务器

PPTP(点对点隧道协议)是一种常见的VPN协议,虽然它的安全性已经被一些新型的VPN协议所取代,但由于其配置简单、广泛支持,仍然在某些场景下得到使用。

1.创建Dockerfile

复制代码
FROM ubuntu:20.04

# 安装PPTP和其它依赖
RUN apt-get update && \
    apt-get install -y pptpd && \
    apt-get clean

# 配置PPTP
RUN echo "option /usr/sbin/pptpd" >> /etc/pptpd.conf && \
    echo "localip 10.0.0.1" >> /etc/pptpd.conf && \
    echo "remoteip 10.0.0.100-200" >> /etc/pptpd.conf

# 设置VPN账户
RUN echo "vpnuser pptpd password *" >> /etc/ppp/chap-secrets

# 打开PPTP服务
CMD ["pptpd", "--debug", "--fg"]

2.构建Docker镜像

复制代码
docker build -t my-pptp-server .

3.运行Docker容器

复制代码
docker run -d \
    --name pptp-server \
    --privileged \
    -p 1723:1723 \
    -p 47:47 \
    my-pptp-server

4.客户端连接

服务器地址:你的服务器IP

用户名:vpnuser

密码:password

总结

通过Docker部署SS5和PPTP服务端可以为您的网络提供更高效的管理和维护方式。Docker容器化的优势使得配置和部署更加灵活,尤其在跨平台和高可用性场景下非常适用。

相关推荐
用户0328472220704 小时前
如何搭建本地yum源(上)
运维
武子康5 小时前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
大树883 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质3 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工3 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
Alsn863 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
酣大智3 天前
ARP代理--工作原理
运维·网络·arp·arp代理
shushangyun_3 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
施努卡机器视觉3 天前
SNK施努卡侧滑门锁上滑轮总成自动化装配线,从零件到组件,全流程精密制造方案
运维·自动化·制造