Pages

Sunday, 1 October 2017

shadowsocks2vpn

docker pull alexzhuo/shadowsocks2vpn

把VPN服务端的流量重定向到Shadowsocks客户端。

Docker server for ShadowsocksR client to VPN

一个OpenVPN/PPTP 服务端。能够将VPN流量重定向至ShadowsocksR客户端,支持国内外分流。

简介

由于众所周知的原因,如果把OpenVPN/PPTP服务端搭建在国外,一般是连接不上的,但是又想通过VPN的方式翻天朝防火墙(对于很多设备来说相当于0配置)可以把VPN的服务端流量定向到Shadowsocks客户端上,并且在此过程中加入GFWList或者大陆IP白名单实现分流功能。
国内路由表位置:/etc/ss_rules/china
GFWList位置:/etc/dnsmasq.d/gfw_list.conf
HAProxy配置文件地址:/etc/haproxy/haproxy.cfg
SSR的配置文件地址:/etc/ss_rules/ss.json
Pdnsd配置文件位置:/etc/pdnsd.conf
OpenVPN服务端配置文件位置:/etc/openvpn/server.conf
OpenVPN客户端.ovpn文件位置:/root
PPTP服务端配置文件:/etc/pptpd.conf
PPTP用户名密码文件:/etc/ppp/chap-secrets
Privoxy配置文件:/etc/privoxy/config
ss-redir 默认端口12345
ss-local 默认端口1080
privoxy 默认端口8080

配置ShadowsockR客户端

在使用之前需要配置SSR客户端,具体方法如下
SSR的配置文件地址:/etc/ss_rules/ss.json
注:上面的文件是配置SS客户端的信息,如果想搭配HAProxy实现负载均衡和高可用,请配置HAProxy
HAProxy配置文件地址:/etc/haproxy/haproxy.cfg
注:如果所有的SS服务端加密方式和密码均相同,则可以使用HAproxy实现负载均衡和高可用

启动VPN服务端

此服务器应部署在天朝内,并配合境外SS服务器使用
OpenVPN协议:
OpenVPN需开放7000 UDP端口,适用于远程、公网、国内服务器、云等等。
客户端的.ovpn文件在容器的/root目录下,免费提供10个客户端文件。也可以通过浏览器访问容器80端口下载。注意需要修改.ovpn文件中的remote后IP为你的服务器IP
国内白名单分流模式
docker run -itd --privileged=true -p 0.0.0.0:7000:7000/udp alexzhuo/shadowsocks2vpn /etc/ss_rules/startforeignip.sh
GFWList分流模式
docker run -itd --privileged=true -p 0.0.0.0:7000:7000/udp alexzhuo/shadowsocks2vpn /etc/ss_rules/startgfwlist.sh
全局翻墙模式
docker run -itd --privileged=true -p 0.0.0.0:7000:7000/udp alexzhuo/shadowsocks2vpn /etc/ss_rules/startallip.sh
PPTP协议:
启动方式和OpenVPN协议相似,需要映射tcp协议的1723端口.
国内白名单分流模式
docker run -itd --privileged=true alexzhuo/shadowsocks2vpn /etc/ss_rules/startforeignip.sh
GFWList分流模式
docker run -itd --privileged=true alexzhuo/shadowsocks2vpn /etc/ss_rules/startgfwlist.sh
全局翻墙模式
docker run -itd --privileged=true alexzhuo/shadowsocks2vpn /etc/ss_rules/startallip.sh
注意,如果你客户端在连接PPTP服务器的时候出现了“错误619”(windows)并且在服务器宿主机上使用tcpdump发现如下提示protocol 47 unreachable
那么应该是没有开启GRE协议引起的,此时需要在宿主机上开启GRE协议和1723端口(网上有说开启47端口的都是胡说八道)
只需一条指令:modprobe ip_nat_pptp
如果还是protocol 47 unreachable,那么再试试下面这个
iptables -t nat -A PREROUTING -i eth0 -p 47 -j DNAT --to 容器IP

使用Socks5或HTTP代理
启动socks5代理 ss-local -c /etc/ss_rules/ss.json 然后需要映射端口1080
启动HTTP代理 service privoxy restart 需要先启用socks5代理,并映射端口8080
注:使用HTTP代理可能会泄漏你的网络流量,因为是无加密传输。浏览器默认配置为全局代理,如果想实现智能分流,需要在浏览器的代理配置PAC,具体可以看:https://github.com/breakwa11/gfw_whitelist
from https://hub.docker.com/r/alexzhuo/shadowsocks2vpn/

No comments:

Post a Comment