搭建vpn的几种办法

方法一:搭建x-ui

服务端安装有说明:https://github.com/mlldxe/X-UI

客户端:v2ray.NG( 注: v2ray.NG去掉“.”,搜索用 v2rayN )

安卓端:https://github.com/2dust/v2rayNG/

方法二:搭建Shadow.socks(注:shadow.socks去掉“.”)

安装Shadow.socks服务端(参考官方Shadow.socks使用说明):

yum install python-setuptools && easy_install pip
pip install shadow.socks

编写配置(参考Configuration via Config File):

vi /etc/shadow.socks.json

{
   "server":"0.0.0.0",
   "server_port":8388,
   "local_address": "127.0.0.1",
   "local_port":1080,
   "password":"mypassword",
   "timeout":300,
   "method":"aes-256-cfb",
   "fast_open": false
}

或(多个SS账号)

{
   "server":"0.0.0.0",
   "port_password":{
    "8381":"xxxxxxx",
    "8382":"xxxxxxx",
    "8383":"xxxxxxx",
    "8384":"xxxxxxx"
    },
   "timeout":300,
   "method":"aes-256-cfb",
   "fast_open": false
}


配置说明:
字段     说明
server     ss服务监听地址
server_port     ss服务监听端口
local_address     本地的监听地址
local_port     本地的监听端口
password     密码
timeout     超时时间,单位秒
method     加密方法,默认是aes-256-cfb
fast_open     使用TCP_FASTOPEN, true / false
workers     workers数,只支持Unix/Linux系统

启动与停止
ssserver -c /etc/shadow.socks.json -d start
ssserver -c /etc/shadow.socks.json -d stop

shadow.socks的日志保存在 /var/log/shadow.socks.log

安装shadow.socks客户端
下载地址:https://github.com/shadow.socks/


方法三:搭建l2tp vpn(推荐,注:Android6.0.1 l2tp无法连接)
参考DearTanker's Blog的一键安装方法:
wget --no-check-certificate https://raw.githubusercontent.com/teddysun/across/master/l2tp.sh
chmod +x l2tp.sh
./l2tp.sh

基本上,按交互式命令的提示按回车或者自定义自己的选择即可,然后再次验证ipsec(L2TP)并重启相关服务,否则提示服务器无相应

service ipsec restart
service xl2tpd restart
ipsec verify

添加账号密码,可以修改/etc/ppp/chap-secrets

user    *    pass       *


方法四:搭建openvpn(不建议)

vultr面板提供一键安装openvpn的办法,方法是在新建一个vps实例时选择默认安装一个应用程序:

具体安装办法参考官方的一键安装openvpn说明。openvpn是使用操作系统的登录账号登录的,所以搭建完openvpn后,你可以参考linux新建用户的办法新建一个用户及修改用户密码,然后使用opevpn提供的客户端或者网页(一般情况下是https://your_vps_ip:943/)登录即可。

之所以不建议使用openvpn,原因是测速发现比较慢,下载带宽不到1M,而且openvpn貌似不支持移动端登录。


方法五:搭建pptpd vpn(不建议)

注:之所以不建议使用pptpd,一方面是pptpd经常被墙,二是容易出问题。

一、安装

yum install ppp iptables pptpd

二、配置

1. 编辑pptpd.conf

vi /etc/pptpd.conf

2. 搜索localip,去掉下面字段前面的#,然后保存退出

localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245

注意,pptpd默认支持最大100个连接,每个remoteip分配一个连接,如果remoteip数不够100个,那么默认连接数就会变成remoteip数。如果默认连接数不够的话,就会出现自动断开的情况,比如手机上的vpn连上了,PC端的vpn就会断开。

3. 编辑options.pptpd,搜索ms-dns,去掉搜索到的两行ms-dns前面的#,并修改为下面的字段

ms-dns 8.8.8.8
ms-dns 8.8.4.4


4. 编辑/etc/ppp/chap-secrets设置VPN的帐号密码,注意,用户名与密码是区分大小写的

用户名 pptpd 密码 *

5. 编辑/etc/sysctl.conf,修改内核参数,在末尾添加下面的代码,使内核支持转发

net.ipv4.ip_forward=1

6. 运行下面的命令使内核修改生效

sysctl -p

7. 添加下面的iptables转发规则(直接在SSH运行下面命令即可)

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE

8. 添加转发规则后重启就会失效,Centos 6系统可以使用service iptables save保存配置,而Centos7则可以修改/etc/rc.d/rc.local保存上面的命令,这样开机会自动执行上面的命令。

三、启动

1. 用下面的命令使pptpd开机自动启动

chkconfig pptpd on


2. 启动pptpd

service pptpd start


四、使用

使用你的vpn客户端连接即可,如果配置没问题的话,就可以连接成功。
测试成功连接的vpn客户端有,win7+win10自带vpn客户端,andriod自带vpn客户端。但只在宽带网络上连接成功,4g网络连接不成功。


五、排错

1. 如果你的vpn连接不成功,有可能是iptable防火墙的问题,你可以使用下面命令

iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
或者
iptables -F

然后在你的其他电脑使用telnet your_ip 1723测试是否连通。
2. 如果你遇到访问网站偶尔连接上又断的问题,可能是MTU太大导致,可以

执行
iptables -I FORWARD -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1356
或者修改/etc/ppp/options.pptpd,在文件最后添加
mtu 1356

3. 更多问题,可以打开pptpd的debug日志,根据debug日志的输出上网搜索一步步解决

修改/etc/ppp/options.pptpd
取消下面的注释
debug
dump
logfile /var/log/pptpd.log(没有则手工修改)

原创文章,作者:cy,如若转载,请注明出处:https://www.cygzs.net/