Tuesday, June 18, 2019

WireGuard for Windows 发布首个版本

WireGuard 作者 Jason Donenfeld 宣布发布首个 Windows 测试版本。他称这个版本是 pre-alpha,也就是软件还不完整,很多安全相关的功能还没有完成,性能也没有优化。但它已经有了足够的功能,释出这个版本主要是测试和听取反馈。WireGuard 是一种新兴的 VPN 实现,配置比 OpenVPN 等更简单。它已经支持 Linux,Android、BSD 和 macOS。

来源https://www.solidot.org/story?sid=61019



via iGFW http://bit.ly/31G0qke

另辟蹊径,在OpenVZ平台上安装WireGuard-Go实现搭建WireGuard服务端

0. 引言

在Wall越来越高的年代,能够找到一款稳定过Wall的V#P#N,已经越来越不容易。

先是Open#V#P#N的沦陷,然后AnyConnect也慢慢的被认证掉了,

纯V#P#N类的工具越来越少,但很多时候预计Socks协议的代理却远远不能满足我们的使用需要。

可能有的人会说,那就用WireGuard啊。

是,WireGuard确实是个完美的方案,但WireGuard只能安装在KVM/Xen/物理架构上,并不能安装在某些基于OpenVZ的服务器上。

难道真的没办法了么?

其实WireGuard官方也提供了一个额外的解决方案,那就是 WireGuard-Go 。

1. 什么是WireGuard-Go

WireGuard-Go是WireGuard的Go语言实现。

在原版的WireGuard中,由于是基于C/C++语言编写,而且需要将成品的WireGuard模块 (wireguard.ko) 编译到系统内核中,这样一来基于OpenVZ的共享核心型虚拟化架构来讲根本无法成功安装WireGuard。

而在WireGuard-Go中,由于WireGuard模块已经通过Go语言实现,所以并不需要将模块编译到内核中,但相对于原版的WireGuard来讲,执行效率可能会略有下降。但这已经是在OpenVZ这种极端环境下的唯一选择。(谁让V#P#N没有其他选择了呢)(逃)

2. 安装WireGuard-Go

2.1 前提条件

首先,在安装WireGuard-Go前,我们来看下安装WireGuard-Go的一些需求。

编译环境:

任何虚拟化架构或者物理机架构
内存>512MB (推荐>1GB,如果内存不足推荐通过增加Swap的方式临时扩展内存)
磁盘可用空间>5GB
安装Golang环境 (下文会具体讲安装及编译过程)

运行环境:

OpenVZ虚拟化架构 (Docker/LXC尚未进行测试)
内存>128MB (推荐>256MB)
磁盘可用空间>500MB
开启TUN/TAP (可以在VPS后台控制面板中检查并打开此项)

编译环境和运行环境可以是同一台服务器,也可以在不同的服务器上,下文会具体讲如何导出编译结果。

一定要注意,毕竟WireGuard怎么说也是个V#P#N,所以一定会用到TUN/TAP,请务必开启TUN/TAP,以防止WireGuard无法正常转发流量!

2.2 准备编译环境

首先我们登录编译环境服务器,并安装Golang环境:

wget -O /tmp/golang.tar.gz https://dl.google.com/go/go1.12.4.linux-amd64.tar.gz
tar -C /usr/local -xvzf /tmp/golang.tar.gz

之后配置Golang相关环境变量:

export PATH=$PATH:/usr/local/go/bin

2.3 编译WireGuard-Go

在Golang安装完成之后,开始下载WireGuard-Go源码:

mkdir -p /tmp/gobuild/ && cd /tmp/gobuild/
git clone https://git.zx2c4.com/wireguard-go
cd wireguard-go

配置环境变量并开始编译(请确保你的网络状况良好,推荐使用海外服务器进行编译):

export GOPATH="/tmp/gobuild/"
go build -v -o "wireguard-go"

如果没有遇到任何错误的话,我们会在同目录看到一个 wireguard-go 的可执行文件。

将此文件复制到系统目录中(本机编译本机安装):

cp wireguard-go /usr/sbin/wireguard-go

或者通过SSH、FTP等方式传输到目标运行环境服务器上,并将文件导入上述位置并配置可执行权限(异机编译安装)。

如果无法自行编译安装,可以使用博主提供的成品编译二进制文件:

https://download.ilemonrain.com/WireGuard-Go/precompile/wireguard-go.gz

2.4 安装并配置WireGuard

看到这里很多人会问了,我们安装的不是WireGuard-Go么?怎么又要安装WireGuard了?

先别急,我在这里解释一下。

在上一步里安装的WireGuard-Go,只是将WireGuard的内核部分 (wireguard.ko) 编译完成了,我们还需要编译WireGuard主程序 (wg 和 wg-quick),才能使得WireGuard能够正常使用,同时也可以像正常配置WireGuard那样配置WireGuard-Go。

首先安装必要的编译环境组件:

For Debian/Ubuntu:

apt-get install libmnl-dev libelf-dev build-essential pkg-config

For CentOS

yum install libmnl-devel elfutils-libelf-devel pkg-config @development-tools

之后下载源码包:

mkdir -p /tmp/build/ && cd /tmp/build/
git clone https://git.zx2c4.com/WireGuard
cd wireguard-go/src/tools

编译安装WireGuard工具:

make && make install

到这里,WireGuard的wg和wg-quick这两条命令,应该就可以使用了。

再加上上一步中编译好的wireguard-go,我们可以在OpenVZ平台上运行WireGuard了。

3. 配置WireGuard-Go

首先执行WireGuard-Go,启动WireGuard内核,并创建一块虚拟网卡(可能现在不会显示出来,但当使用wg或wg-quick命令行启动时就会自动出现):

由于是测试版的原因,会自动弹出一个类似这样的警告:

WARNING WARNING WARNING WARNING WARNING WARNING WARNING
W G
W You are running this software on a Linux kernel, G
W which is probably unnecessary and foolish. This G
W is because the Linux kernel has built-in first G
W class support for WireGuard, and this support is G
W much more refined than this slower userspace G
W implementation. For more information on G
W installing the kernel module, please visit: G
https://www.wireguard.com/install G
W G
W If you still want to use this program, against G
W the advice here, please first export this G
W environment variable: G
W WG_I_PREFER_BUGGY_USERSPACE_TO_POLISHED_KMOD=1 G
W G
WARNING WARNING WARNING WARNING WARNING WARNING WARNING

执行以下命令即可继续使用:

export WG_I_PREFER_BUGGY_USERSPACE_TO_POLISHED_KMOD=1

之后执行命令,创建虚拟网卡:

wireguard-go wg

下述部分你可以参照doubi的WireGuard教程操作!
传送门:https://doubibackup.com/qbc20cn3.html

接下来我们创建WireGuard的配置文件:

mkdir -p /etc/wireguard/ && cd /etc/wireguard/

生成密钥对:

wg genkey | tee sprivatekey | wg pubkey > spublickey
wg genkey | tee cprivatekey | wg pubkey > cpublickey

确认你的外网网卡(对于OpenVZ虚拟化架构来讲,一般都是 venet0 )

root@ovzhost:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host 
   valid_lft forever preferred_lft forever

2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN

link/void 
inet 127.0.0.2/32 scope host venet0
inet X.X.X.X/32 brd X.X.X.X scope global venet0:0

3: wg: <POINTOPOINT,MULTICAST,NOARP> mtu 1420 qdisc noop state DOWN qlen 500
link/none

生成WireGuard服务端配置文件 wg0.conf :

echo "[Interface]
PrivateKey = $(cat sprivatekey)
Address = 10.0.0.1/24 
PostUp   = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -D FORWARD -o wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o venet0 -j MASQUERADE
ListenPort = 6666
MTU = 1420

[Peer]
PublicKey = $(cat cpublickey)
AllowedIPs = 10.0.0.2/32" | sed '/^#/d;/^\s*$/d' > wg0.conf

生成WireGuard客户端文件 client.conf :

echo "[Interface]
PrivateKey = $(cat cprivatekey)
Address = 10.0.0.2/24
DNS = 8.8.8.8
MTU = 1420

[Peer]
PublicKey = $(cat spublickey)
Endpoint = $(curl -s whatismyip.akamai.com):6666
AllowedIPs = 0.0.0.0/0, ::0/0
PersistentKeepalive = 30" | sed '/^#/d;/^\s*$/d' > client.conf

当然,不要忘了开启转发:

echo 1 > /proc/sys/net/ipv4/ip_forward
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p

在确认配置无误后,启动WireGuard服务端:

wg-quick up wg0

会得到类似这样的结果:
root@ovzhost:/etc/wireguard# wg-quick up wg0

[#] ip link add wg0 type wireguard
RTNETLINK answers: Operation not supported
[!] Missing WireGuard kernel module. Falling back to slow userspace implementation.
[#] wireguard-go wg0
WARNING WARNING WARNING WARNING WARNING WARNING WARNING
W G
W You are running this software on a Linux kernel, G
W which is probably unnecessary and foolish. This G
W is because the Linux kernel has built-in first G
W class support for WireGuard, and this support is G
W much more refined than this slower userspace G
W implementation. For more information on G
W installing the kernel module, please visit: G
https://www.wireguard.com/install G
W G
WARNING WARNING WARNING WARNING WARNING WARNING WARNING
INFO: (wg0) 2019/04/19 09:45:50 Starting wireguard-go version 0.0.20190409-9-gd024393
[#] wg setconf wg0 /dev/fd/63
[#] ip address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -A FORWARD -o wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o venet0 -j MASQUERADE

则说明WireGuard启动成功(出错为正常现象,因为无法加载基于内核模块的WireGuard,所以只能加载WireGuard-Go作为Fallback方案)

将client.conf传回本地并导入客户端中(个人推荐使用TunSafe,下载地址自己找),即可完成配置工作。

4. 一点点善后工作…

配置WireGuard开机启动:

systemctl enable wg-quick@wg0

清理编译过程中产生的垃圾文件:

rm -rf /tmp/gobuild/
rm -rf /tmp/build/
rm -f /tmp/golang.tar.gz

Enjoy~

原文https://blog.ilemonrain.com/linux/wireguard-go.html



via iGFW http://bit.ly/2Zz6oRR

Friday, June 7, 2019

自由门7.67版(4月3日)

自由门7.67版增强突破封锁能力。欢迎大家继续反馈。

如果不能使用,请上传反馈信息。谢谢。

专业版:
http://dongtaiwang.com/loc/software/fg/767/fg767p.exe
http://dongtaiwang.com/loc/software/fg/767/fg767p.zip

原文:http://forums.internetfreedom.org/index.php?topic=23612.0



via 细节的力量 http://bit.ly/31kARFl

安卓版: 无界一点通4.7测试版(2019年4月10日)

无界一点通4.7测试版,请帮忙测试并反馈:

1. 增强安全性, 禁止在5.0以下使用代理模式,禁止在4.4上使用无界一点通(有不安全因素);
2. 解决安卓7以上不能自动升级的问题。

http://wujieliulan.com/download/um4.7a.apk

md5: a1ec7e0c5e845b6207a0a1701fa19cfb
sha512: 844e11e839182a519cc890a991952eab08f604624a63f3076b9b7b547a6b6cd4f383e4eddfb9dd32ef7a40280aeb70e85d7061575b4c8a76d66c4e42133155fe

只支持安卓4.0以上。

谢谢!

—————–

“无界一点通”是安卓版的翻墙软件, 让您看到没有被过滤的真实讯息。适用于安卓手机/安卓机顶盒等安卓平台。

安装”无界一点通”:

1。需要首先对手机进行设置: 按“菜单”键 –> settings(设置)–> Applications(应用程序), 钩选”Unknown sources”(未知源)。
注: 有的版本是: 按“菜单”键 –> settings(设置)–> security (安全) 里面, 钩选”Unknown sources”(未知源)。

在安卓9上设置如下: 首先使用原生自带浏览器Chrome 下载um.apk, 然后按“菜单”键 –> settings(设置)–> Apps&Notificatins(应用与通知) –>Special app access( 特殊应用) –> “Unknown sources”(未知源), 选择Chrome 点击进入, 再勾选Allow from this source 。这样安装完毕后,再取消勾选Allow from this source。

2。将下载的um.apk文件拷贝到手机SD卡(或内置SD卡)上。如果下载的为压缩文件, 无须解压, 直接将文件扩展名 .zip 更改为 .apk 。
在安卓手机上点击um.apk文件便可安装。如与已经安装的无界一点通旧版有冲突,请先卸载旧版, 再安装新版。

3。详细说明见网址: 《网址》m.wujieliulan.com/userguide.html 《网址》

4。 注: 如果在VPN模式下使用其他浏览器(而不是无界一点通自带的浏览器),请使用其浏览器的“隐私模式”, 或退出无界一点通之后,请将浏览器的历史记录清除,否则在没有VPN的情况下无意中点击了这些历史记录,会有安全隐患。

原文:http://forums.internetfreedom.org/index.php?topic=23619.msg80466#msg80466



via 细节的力量 http://bit.ly/2Kyjivq