1.编译与安装

sudo apt-get install libmnl-dev libelf-dev linux-headers-$(uname -r) build-essential pkg-config
wget https://git.zx2c4.com/WireGuard/snapshot/WireGuard-0.0.20181119.tar.xz

  正常的make, make install 就行。

  需要注意的:

(1)gcc 好像至少要 4.8 (这里需要可能会升级内核)

(2)要 libmnl.so ,我是centos6.5 环境下

(3)由于涉及编译驱动模块,所以需要 内核开发包(需要注意 Makefile 中内核开发包路径正确)

2.使用

 wg genkey | tee privatekey | wg pubkey > publickey
[Interface]
PrivateKey = < 这里填写 Client 上 privatekey 的内容 >
Address = 192.168.1.2/24 # Server
[Peer]
PublicKey = < 这里填写 Server 上 publickey 的内容 >
Endpoint = 1.1.1.1:51820
AllowedIPs = 0.0.0.0/0

(1)服务器(环境 debain9)

成功启动后,若要实现xx功能,需要开启IP转发和数据转发

IP转发

echo 1 > /proc/sys/net/ipv4/ip_forward

数据转发

iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -m udp --dport <server的端口号> -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -s 10.200.200.0/24(隧道网段) -p tcp -m tcp --dport 53 -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -s 10.200.200.0/24 -p udp -m udp --dport 53 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -i wg0 -o wg0 -m conntrack --ctstate NEW -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.200.200.0/24 -o eth0 -j MASQUERADE

(2)客户端 (环境centos6.5)

安装成功后,无法使用 wg-quick 启动客户端,需要使用命令自行启动

sudo ip link add dev wg0 type w__i@@@r!!e__g¥¥¥u$$$a%%%r**d
sudo ip address add dev wg0 10.100.0.101/24
sudo ip link set wg0 up
sudo wg setconf wg0 /etc/wi@@@r$$$$e###g@@@ua¥¥¥¥r$$$d/wg0.conf

然后添加路由规则

sudo route add -host <VPS IP> gw <本机网关>
sudo route del default
sudo route add default dev wg0

关闭使用

sudo ip link del dev wg0

在修改回正常的路由即可

windows下可以这样修改路由规则

route delete 0.0.0.0   // 删除所有默认路由
route add 0.0.0.0 mask 0.0.0.0 10.200.200.1 if 16 // 下一跳给10.200.200.1,并由 interface 为 tunsafe 的接口发出, tunsafe会根据规则将目标地址都改成 VPS 地址

请原谅那些奇怪的符号,写出来已经是我最大的勇气 : )

最新文章

  1. Python之路Day14--html
  2. SqlHelper类
  3. mysql 命令(二)
  4. vs c# int &amp; int32
  5. NFC基础
  6. nexus中央仓库中发布自己的jar包
  7. KTV点歌系统
  8. SUSE Linux Enterprise Server 设置防火墙开启ssh远程端口
  9. 用java实现冒泡排序法
  10. 通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法
  11. web beacon
  12. bzoj4800 [Ceoi2015]Ice Hockey World Championship
  13. 用MVC导入导出
  14. Java经典编程题50道之二十八
  15. 国内开源社区巨作AspectCore-Framework入门
  16. Stm32 GPIO复习
  17. Linux之系统优化
  18. Java 线程的生命周期
  19. 上海市2019年公务员录用考试第一轮首批面试名单(B类)
  20. sqlserver 一键备份,异机还原脚本

热门文章

  1. 多测师讲解python _函数的传递_高级讲师肖sir
  2. sop服务治理
  3. 从Linux源码看Socket(TCP)的bind
  4. MATLAB利用solve函数解多元一次方程组
  5. 解决React前端在开发环境的跨域问题
  6. 置Hugo的代码高亮
  7. python爬虫获取下一页
  8. 说明资源路径位置类型无法解析The type javax.servlet.http.HttpServletResponse cannot be resolved.
  9. Markdown基础知识
  10. svn右键菜单不显