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 地址

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

wireguard使用的更多相关文章

  1. 新的WireGuard快照发布

    导读 WireGuard首席开发人员Jason Donenfeld宣布发布WireGuard 0.0.20190123,作为Linux系统和其他平台的安全VPN隧道实施的最新快照. WireGuard ...

  2. WireGuard 隧道的安装和使用,测试地址 ca.6tu.me

    WireGuard 端到端平等的网络隧道,测试地址 ca.6tu.me --------------------------------------------- 服务器:远程 Ubuntu18 , ...

  3. wireguard使用方法

    1.翻墙访问网页:https://cryptostorm.is/wireguard.cgi 并下载客户端 2. 选者第二个并打开 3.复制publickey 4.黏贴在第二行并addkey: 5.将获 ...

  4. WireGuard 教程:WireGuard 的工作原理

    原文链接:https://fuckcloudnative.io/posts/wireguard-docs-theory/ WireGuard 是由 Jason Donenfeld 等人用 C 语言编写 ...

  5. 我为什么不鼓吹 WireGuard

    原文链接:https://fuckcloudnative.io/posts/why-not-wireguard/ 最近有一款新型 VPN 工具备受瞩目,相信很多人已经听说过了,没错就是 WireGua ...

  6. WireGuard 教程:使用 DNS-SD 进行 NAT-to-NAT 穿透

    原文链接:https://fuckcloudnative.io/posts/wireguard-endpoint-discovery-nat-traversal/ WireGuard 是由 Jason ...

  7. Wireguard 全互联模式(full mesh)配置指南

    上篇文章给大家介绍了如何使用 wg-gen-web 来方便快捷地管理 WireGuard 的配置和秘钥,文末埋了两个坑:一个是 WireGuard 的全互联模式(full mesh),另一个是使用 W ...

  8. WireGuard协议介绍

    原文: https://www.jianshu.com/p/32c3e62c2711

  9. vps install ss

    1.install ss yum install python-setuptools easy_install pip pip install shadowsocks 2.config ss (sin ...

随机推荐

  1. P2340 [USACO03FALL]Cow Exhibition G题解

    新的奇巧淫技 原题传送门 众所周知,模拟退火是一种很强大的算法,DP很强,但我模拟退火也不虚,很多题你如果不会的话基本可以拿来水很多分.比如这道题,我用模拟退火可以轻松水过(虽然我是足足交了两页才过) ...

  2. go xpath

    package main import ( "fmt" "github.com/antchfx/htmlquery" "net/http" ...

  3. swoole创建进程

    <?php /** * Created by PhpStorm. * User: mac * Date: 2020/4/23 * Time: 21:57 */ use Swoole\Proces ...

  4. nginx安全: 配置http基本验证(Basic Auth)(nginx 1.18.0)

    一,http基本验证的作用: 1,http基本身份验证会从浏览器弹出登录窗口, 简单明了,容易理解, 对于面向终端用户的前台来说,不够友好, 但对于内部员工操作的后台还是很有用,通常作为一层安全措施应 ...

  5. 【API管理 APIM】APIM集成内部VNet时,常遇见的关于自定义DNS服务问题。

    问题描述 Azure 的APIM集成虚拟网络有两种方式,外部VNET, 内部VNET. 外部VNET,要求低,可以通过APIM访问VNET中的VM等资源,不需要配置自定义DNS服务器,这种方式下,AP ...

  6. RocketMQ 4.7.1 环境搭建、集群、MQ整合SpringBoot

    导读 之前学过ActiveMQ但是并发量不是很大点我直达,所以又学阿里开源的RocketMQ,据说队列可以堆积亿级别.下面是网上找的消息队列对比图,仅供参考 部署 官网 点我直达 前置条件 推荐使用6 ...

  7. Distcp 跨集群同步

    date: 2020-10-09 17:45:00 updated: 2020-10-10 17:45:00 Distcp 跨集群同步 1. 使用方法及原理 hadoop distcp srcPath ...

  8. JS-根据身份证获取 出生日期和性别

    一.根据身份证获取出生日期和性别/** * 根据身份证获取出生日期(yyyy-MM-dd) * @param psidno * @returns {birthday:yyyy-MM-dd} * @co ...

  9. 前后端分离Java后端主流开发环境框架20200622

    开发环境: IDE:IntelliJ IDEA 2017+ DB: mysql5.7.4.PostgreSQL.mongoDB.redis JDK:JDK1.8+ Maven:Maven 3.2.3+ ...

  10. python文件命名时的注意点

    在python中读取Excal文件,需要引用xlrd模块,因此建的这个python文件名为xlrd.py 部分代码如下: import xlrd import os newpath = os.chdi ...