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. go xpath

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

  2. centos8平台使用journalctl管理systemd-journald日志

    一,systemd-journald的作用 1,什么是systemd-journald? systemd-journald 是 systemd 自带的日志系统,是一个收集并存储各类日志数据的系统服务. ...

  3. MySQL历史

    MySQL历史 马云生气了 去IOE活动 1979年 研发一个引擎 1996年 发布MySQL1.0 1999年 瑞典注册AB公司 2003年 MySQL 5.0版本 提供试图.存储过程 具有了一些企 ...

  4. Linux命令之Hash缓存表

    Hash缓存表 系统初始hash表为空,当外部命令执行时,默认会从PATH路径下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在将 ...

  5. matlab cvx工具箱解决线性优化问题

    题目来源:数学建模算法与应用第二版(司守奎)第一章习题1.4 题目说明 作者在答案中已经说明,求解上述线性规划模型时,尽量用Lingo软件,如果使用Matlab软件求解,需要做变量替换,把二维决策变量 ...

  6. centos7下SVN服务器搭建

    1,安装 yum install subversion 2,输入rpm -ql subversion查看安装位置 3,创建svn版本库目录 mkdir -p /var/svn/svnrepos 4,创 ...

  7. Android面试题收录及解答10月刊

    前言 嗨,大家好,好久不见.这里跟大家侃侃这中间发生了什么. 一个月前呢,想准备面试,就网上随便找找面试题什么的,发现要么就是卖课的,要么就是不给详细回答的或者回答不够深的(也许是我没找到).反正稍微 ...

  8. 关于c++ string类的一些使用

    主要最近要用的上 才整理一下 用string类别忘了导入头文件 #include <string> 注意这个细节:cout 可直接输出 string 类的对象的内容 但是printf不可以 ...

  9. MapReduce工作原理详解

    文章概览: 1.MapReduce简介 2.MapReduce有哪些角色?各自的作用是什么? 3.MapReduce程序执行流程 4.MapReduce工作原理 5.MapReduce中Shuffle ...

  10. JAVA NIO 基础学习

    package com.hrd.netty.demo.jnio; import java.io.BufferedReader; import java.io.IOException; import j ...