WireGuard这个VPN最近有点热门,搜了一下,大都在讲点对点VPN,Android上的配置基本上都用AzireVPN已经配置好的config,如何在自己的VPS搭建,并给自己的Android用,稍微摸索了一下,记录一下。
服务器端的配置
在VPS上的配置很简单,按照网上的主流的教程配置就好,比如说Linode上的文章写得很清楚了,不过其中漏掉了一点点东西(ipv4 forwarding),这里放一个完整的步骤。
安装
- 依赖linux-headers1
sudo
apt
install
linux-headers-$(
uname
-r)
- 安装WireGuard12
sudo
add-apt-repository ppa:wireguard
/wireguard
sudo
apt-get
install
wireguard
配置
- 创建key12
umask
077
wg genkey |
tee
privatekey | wg pubkey > publickey
- 编辑config文件
/etc/wireguard/wg0.conf
,具体见注释12345678910111213[Interface]
Address = 192.168.2.1
/24
# VPN server自己的地址,可以改成任意的内网地址
Address = fd86:ea04:1115::1
/64
# VPN server自己的ipv6的地址(可选)
SaveConfig =
true
# 设为true之后,每次重启服务(stop service时)都会自动保存config
# 以下是重点: 当服务启动时,通过iptables配置wg0来的流量forward到eth0
# 如果你的device不是eth0而是别的名字,把下面的eth0改成别的。
# 当服务停止的时候,删除相关的iptables规则
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 10443
# 随便选一个空闲的端口
PrivateKey = <private-key>
#在上一步里生成的privatekey的内容
这样我们就创建好了一个wg0
的WireGurad网络的配置。
启用服务
- 手动开启、关闭
wg0
的网络:12wg-quick up wg0
wg-quick down wg0
- 通过
systemd
来启用这个service,这样系统重新启动时这个服务也会自动启动1systemctl
enable
wg-quick@wg0
额外的配置
为了让VPN能正常工作,需要enable ipv4的ip_forward功能:
1 | sysctl -w net.ipv4.ip_forward=1 |
这样,服务端一开始的配置就弄好了。
手机端的配置
接下来在Android上配置WireGuard。
安装
直接在PlayStore或者F-Droid上下载WireGuard。
配置
- Name: 自己起个名字
- 点击
GENERATE
,它会自动生成Private/Public Key
点击Public key,它会把public key复制到剪贴版,之后要用到。 - Addresses: 填跟服务器端的配置里同样网段的IP,比如说
192.168.2.2/24
- DNS: 我填了
8.8.8.8
,这个应该是可选的 - 添加一个Peer,在Peer里:
- Public key: 填服务器端生成的public key
- Allowed IPs: 填
0.0.0.0/0
,允许所有IP(这个很重要,否则即使连上了VPN,也无法访问别的网站) - Endpoint: 填服务器的IP:端口(比如上面服务端的配置
10443
)
这样手机端的配置也好了。
服务端添加client
再次回到服务器,添加这个手机的public key
1 2 | # android-public-key填手机的WireGuard里生成的public key sudo wg set wg0 peer <android-public-key> allowed-ips 192.168.2.2 /24 |
这样,所有的配置都弄好了,在手机上打开WireGuard,启动刚才配置好的服务,enjoy the freedom
后话
总体来说,WireGuard的配置相比别的要简单多了,而且速度确实很快。
不过,有几个问题:
- 目前的Android的WireGuard的功能很有限,只有简单的Exclude apps来排除不需要用的app。如果加上了GFWList,应该会实用很多。
- 虽然没有看过code,但是从原理上来说,这个VPN应该还是很容易从协议层面被GFW识别,如果没有混淆,GFW只要愿意,很容易定点封IP。
综上,WireGuard适合喜欢尝鲜的朋友,作为日常的翻墙工具,还需要国人在目前的基础上增加工能。GFWList应该好办,能不能混淆,需要去看看白皮书了。。
搭配链接
CloudFlare 優選ip 和 優選域名的獲取方法!懶人加速必備
我们一直在努力
WireGuard安卓客户端下载及使用教程(官方APK)
WireGuard是一款新型的VPN代理工具,同Shadowsocks/SSR/V2ray的搭建比较相似,需要WireGuard服务器端和本地客户端配合使用。
WireGuard客户端,根据系统平台不同,分为多个版本,下面我们先介绍下WireGuard安卓客户端的下载及使用。
在此之前,如果你还没有完成WireGuard服务器端的搭建,可以参考以下文章:
WireGuard一键安装脚本三合一版 适用于CentOS/Debian/Ubuntu搭建
或者:
WireGuard一键安装脚本秋水版 适用于CentOS/Debian/Ubuntu搭建
此外,如果你觉得搭建流程太麻烦,可以考虑Justmysocks的代理服务,可以免去搭建流程,速度和性价比也不错。
WireGuard安卓手机客户端下载
WireGuard安卓客户端为官方发布版本,可用于安卓手机及平板,目前最新版本为v0.0.20190307.(版本随时更新,以实际为准)。
WireGuard最新版下载地址:
https://f-droid.org/en/packages/com.wireguard.android/
打开下载页面,点击最新版本的 Download APK 链接,即可下载,下载链接位置如下图所示。未来WireGuard更新版本,也会在此页面同步更新。
注意:不要点击上面的DOWNLOAD F-DROID,这是下载应用市场的链接。
备用下载地址:
http://www.appchina.com/app/com.wireguard.android
提示:打开下载页面后,可以在历史版本中下载较新版本。最新版本可能没有同步更新,所以作为备用下载。
WireGuard安卓版使用教程
如果你的WireGuard服务器端,是参考本文开头的链接文章搭建部署的。那么搭建完成后,会有一个二维码供WireGuard客户端扫描。以下内容在此基础上展开。
1.打开WireGuard安卓客户端,界面如下图所示,点击右下角的+号开始添加服务器:
2.接下来会出现三个选项供选择,任选一项都可以添加服务器。我们选择第二项扫描二维码,添加起来最为快速。
三个选项分别对应:
- Create from file or archive:导入配置文件。
- Create from QR code:扫描二维码。
- Create from Scratch:手动填写参数。
3.扫描二维码成功后,会弹出下图窗口,随意起个名字就好,然后点击Create Tunnel按钮:
4.现在WireGuard服务器已经添加成功了,在下图界面中,点击右侧的开关,即可开启系统VPN。
注意事项:
- WireGuard安卓客户端,以VPN的形式提供代理服务,使用过程中应避免WireGuard客户端后台进程被清理,导致VPN失效。
- 目前版本功能较为简单,并没有太多的菜单选项可用。
- VPN代理为全局模式,暂不支持GFWList分流,也不支持国内直连、国外代理的模式。
除了上文介绍的安卓客户端以外,其它系统平台WireGuard客户端的下载和使用,可以参考:
评论
发表评论