利用gost实现pptp转socks5或http代理
利用gost实现pptp转socks5或http代理
以debian10为例
1、安装pptp服务器端
sudo apt-get install pptpd #debian系统
编辑/etc/pptpd.conf
,ip段可以自己设置,增加以下两行:
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
这里localip指pptp服务端的IP, remoteip是客户端连接后分配的IP范围
编辑/etc/ppp/chap-secrets,设置pptp认证信息,在最后面新增一行:
user1 pptpd 123456 *
user2 pptpd 123456 192.168.0.245
*为从地址池随机分配,也可以固定一个ip地址
2、安装gost
官网链接在这儿不会编译就直接下二进制文件,丢进去就行:https://latest.gost.run/
创建gost-config.json
可以创建很多个配置文件。我这儿只写了两条,多个可以自行再生成
{
"Debug": true,
"Retries": 0,
"ServeNodes": [
{
"Name": "transparent_proxy_1",
"Listen": "tcp://:31339",
"ProxyProtocol": "socks5", #透明代理协议,http,https,socks5之类的。
"ProxyAddress": "10.0.0.1:1082",
"Protocol": "redirect",
"Target": ""
"Username": "your_username", #账号密码,有的话加上,没有的话删了这两行。
"Password": "your_password"
},
{
"Name": "transparent_proxy_2",
"Listen": "tcp://:31338",
"ProxyProtocol": "socks5",
"ProxyAddress": "10.0.0.1:54213",
"Protocol": "redirect",
"Target": ""
}
]
}
手动执行命令./gost -C gost-config.json
创建服务项gost.service
[Unit]
Description=Gost Transparent Proxy Service
After=network.target
[Service]
ExecStart=/path/to/gost -C /path/to/gost-config.json #写你的配置文件和gost所在的目录
Restart=always
[Install]
WantedBy=multi-user.target
使用iptables进行数据转发
创建ipt.conf,看不懂的话就直接抄作业
*nat
:PREROUTING ACCEPT
:INPUT ACCEPT
:OUTPUT ACCEPT
:POSTROUTING ACCEPT
# Create new chain
:REDSOCKS -
#指定源ip转发数据到指定端口
-A PREROUTING -i ppp+ -s 192.168.0.234 -p tcp -j REDIRECT --to 31338
-A PREROUTING -i ppp+ -s 192.168.0.235 -p tcp -j REDIRECT --to 31339
# Ignore LANs and some other reserved addresses.
# See http://en.wikipedia.org/wiki/Reserved_IP_addresses#Reserved_IPv4_addresses
# and http://tools.ietf.org/html/rfc5735 for full list of reserved networks.
-A REDSOCKS -d 0.0.0.0/8 -j RETURN
-A REDSOCKS -d 10.0.0.0/8 -j RETURN
-A REDSOCKS -d 127.0.0.0/8 -j RETURN
-A REDSOCKS -d 169.254.0.0/16 -j RETURN
-A REDSOCKS -d 172.24.0.0/16 -j RETURN
-A REDSOCKS -d 192.168.0.0/16 -j RETURN
-A REDSOCKS -d 224.0.0.0/4 -j RETURN
-A REDSOCKS -d 240.0.0.0/4 -j RETURN
# Anything else should be redirected to respective ports
#指定源ip转发数据到指定端口
-A REDSOCKS -p tcp -m iprange --src-range 192.168.0.234-192.168.0.234 -j REDIRECT --to 31338
-A REDSOCKS -p tcp -m iprange --src-range 192.168.0.235-192.168.0.235 -j REDIRECT --to 31339
-A OUTPUT -p tcp -j REDSOCKS
-A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
COMMIT
应用iptables规则并保存配置
sudo iptables-restore < ipt.conf
sudo iptables-save
另附清空iptables的命令
iptables -F # 清空过滤器(filter)表的规则
iptables -X # 删除所有自定义链
iptables -t nat -F # 清空网络地址转换(NAT)表的规则
iptables -t nat -X # 删除所有自定义链
iptables -t mangle -F # 清空mangle表的规则
iptables -t mangle -X # 删除所有自定义链
iptables -P INPUT ACCEPT # 将INPUT链的默认策略设置为接受(ACCEPT)
iptables -P FORWARD ACCEPT # 将FORWARD链的默认策略设置为接受(ACCEPT)
iptables -P OUTPUT ACCEPT # 将OUTPUT链的默认策略设置为接受(ACCEPT)