WireGuard组建大内网
Background
- 受疫情影响,大家线上办公的需求空前膨胀,像向日葵、Todesk等这类远程工具炙手可热。
- 这类商业产品,对个人用户虽免费,但也有诸多限制,那我们能不能自己搭建个像向日葵那样的服务端,然后我们自己使用呢。
- 当然可以。这里介绍几种实现方案。
1、Frp
Frp端口转发
:比如说我们把Linux的22端口或window的3389端口转发到公网服务器的一个端口,我们就可以实现远程登录Linux系统或window系统,但如果用到的端口较多,那一个一个配置也挺麻烦的,这种方式这里就不再赘述了。
2、OpenV
OpenV
:这种方式比较古老了,性能上可能稍逊色点,但我的使用体验还行,比向日葵稳定,具体实现方式请参考【Centos7使用docke搭建openV】,IPsec
也是几十年前的解决方案了,这里也不详细介绍了。
3、ZeroTier
这个也是商业软件,不过源码开源,可以自己搭建服务端,这个我自己也试验过了。
具体操作步骤可参考文章:【一分钟自建zerotier-plant】
4、Tailscale
介绍这个之前不得不说下WireGuard
,一句话:2020年1月28日,Linux之父Linus Torvalds正式将WireGuard merge到Linux 5.6版本内核主线
,其他信息可以网上查下看看;关于WireGuard 协议实现的工具有用户态实
现的Tailscale
和内核态
实现的Netmaker
,Netmaker这里就不介绍了,Tailscale呢,服务端不开源,对免费用户有诸多限制,而Headscale是一款开源实现,就是我们的主角了,这里详细记录搭建过程。搭建是基于docker的,如果拉镜像网不好,可以采用其他方式,请参考【Tailscale 基础教程:Headscale 的部署方法和使用教程】
客户端
Headscale 目前适配情况如下:
docker 部署服务端
- 创建headscale目录
mkdir -p /opt/headscale/
mkdir -p /opt/headscale/config
cd /opt/headscale/
- 创建 docker-compose.yml
version: '3.5'
services:headscale:image: headscale/headscale:latest-alpinecontainer_name: headscalevolumes:- ./config:/etc/headscale- ./data/data:/var/lib/headscaleports:- 7080:7080command: headscale serverestart: unless-stopped
- 创建配置文件
wget https://github.com/juanfont/headscale/raw/main/config-example.yaml -O ./config/config.yaml
- 修改配置文件
- server_url:server_url 这个东西是一个简单的「HTTP 设备认证页面」,后面需要暴露在公网上,其他设备如果想加入到你的网络里面,需要访问这个地址,拿到一个 Token。有域名的话推荐用域名+nginx/caddy 反向代理没域名的话用 ip+端口。
- ip_prefixes 可以根据自己控制客户端分配IP的网段。
- 然后创建一个虚拟网络空间。进到 headscale 的 docker 里面
docker exec -it 容器id /bin/sh
然后执行
headscale namespaces create wlf
windows客户端
简单说明下,服务端我们用headscale搭建的,客户端用的tailscale。
- 官网下载客户端:【Windows客户端下载地址】
- 下载好安装
安装成功任务栏图标如下图所示
- 然后修改注册表
Win + R,然后输入regedit
打开注册表编辑器,新建字符串值【UnattendedMode】=【always】和【LoginURL】=【你刚搭建的服务端的地址,即上面配置的server_url】
- 重启tailscale客户端,双击图标登录,会自动打开一个网页如下图,即在
服务端执行命令授权
(还是需要进入到容器中执行),注意修改NAMESPACE。
# 第一种方法:通过服务端授权客户端,下面结合Linux客户端再介绍第二种方法:通过 Pre-Authkeys 授权客户端
headscale -n wlf nodes register --key 905cf165204800247fbd33989dbc22be95c987286c45aac3033937041150d846
- 授权成功后客户端图标如下图所示
- 查看客户端IP已经分配了虚拟IP
110.10.0.1
,是我们指定的网段
- 同样的操作在另一台Windows上安装配置好客户端,分配虚拟IP
110.10.0.2
- 网络互通了,我的本就是局域网内的,所以延迟贼低
Linux客户端
- 一行命令安装
curl -fsSL https://tailscale.com/install.sh | sh
- docker-compose安装
# docker-compose.yml
version: '3.3'
services:tailscaled:container_name: tailscaledimage: tailscale/tailscalenetwork_mode: hostprivileged: truerestart: alwayscap_add: - net_admin- sys_modulevolumes:- ./lib:/var/lib- /dev/net/tun:/dev/net/tuncommand: sh -c "mkdir -p /var/run/tailscale && ln -s /tmp/tailscaled.sock /var/run/tailscale/tailscaled.sock && tailscaled"
# 启动tailscale客户端容器
docker-compose up -d
- 安装好
通过第二种授权方法 Pre-Authkeys
加入到服务端创建的虚拟局域网wlf
# 首先在服务端进入容器,创建preauthkeys,指定24h有效期,--reusable参数代表可以重复使用,不加的话用一次就废了
headscale preauthkeys create -e 24h --reusable -n wlf
# 查看创建的preauthkeys,第一个我已经把它失效了
headscale preauthkeys list -n wlf
# 然后在Linux客户端执行(如果是docker安装的需要进到容器内再执行)
# 这里推荐将 DNS 功能关闭,因为它会覆盖系统的默认 DNS。如果你对 DNS 有需求,可自己研究官方文档,这里不再赘述。
tailscale up --login-server=http://<服务端headscale的IP>:7080 --accept-routes=true --accept-dns=false --authkey 275a973c61f5ae7bb63955a648e7c3b38ac015552fe60ec1
# 最后在服务端进入容器,查看已加入的节点
headscale nodes list -n wlf
headscale-ui
github地址:【https://github.com/gurucomputing/headscale-ui】
- docker安装
# docker-compose.yml
version: '3.5'
services:headscale-ui:image: ghcr.io/gurucomputing/headscale-ui:latestrestart: unless-stoppedcontainer_name: headscale-uiports:- 9443:443
WireGuard组建大内网相关推荐
- 快速搞明白公网和私网的区别(组建私网的网络号)
文章目录 公网/外网 私网/内网 组建私网的原因 组建私网的网络号 公网/外网 就是我们通常所说的互联网 私网/内网 一个私有网络,仅限于内部通信 组建私网的原因 IP地址不够用的解决方法: 1.DH ...
- 4台计算机组建对等网结构图,第4章 组建Windows对等网.ppt
<第4章 组建Windows对等网.ppt>由会员分享,可在线阅读,更多相关<第4章 组建Windows对等网.ppt(23页珍藏版)>请在人人文库网上搜索. 1.第4章 组建 ...
- 4台计算机组建对等网结构图,对等网的建.doc
对等网的建 实验名称:对等网的组建及网络打印机的安装 班级:数字媒体技术10级 学号:2010222106 姓名:张壮志 一.实验目的: (1)理解对等网的含义与特点 : (2)熟悉交换机(或集线器) ...
- 计算机网络《组建对等网》实验报告指导书
说明: 水平有限,希望能帮到大家,如果发现错误请联系我修改,谢谢. 我发布的所有文字图片资料,都可以在公众号上联系我,也有一些其他的资料,需要的话都可以联系我,但是希望不要作为商用,谢谢~ 实验(项目 ...
- wireguard组建一个内网环境
文章目录 前言 一.什么是wireguard? WireGuard穿透预期效果图 开始搭建wireguard 中继服务器搭建 peer1客户端搭建: peer2客户端搭建: gateway 添加 pe ...
- 使用 WireGuard 组建非对称路由以降低延迟
❝ 本文转自遨游者的博客,原文:https://aoyouer.com/posts/wireguard-asymmetric-routing/,版权归原作者所有.欢迎投稿,投稿请添加微信好友:clou ...
- 局域网组建(一) 远程办公实现 — WireGuard组建跨地域局域网(AlmaLinux+Docker)
远程访问局域网设备通常采用内网穿透或VPN隧道.WireGuard是一种采用UDP协议的新型VPN技术.WireGuard提供的是节点与节点的网络连接形式,除了可以实现传统VPN以服务器为网关的星型拓 ...
- 计算机网络组建对等网,计算机网络实验二组建WINDOWS环境下的对等网并共享资源.pdf...
实验课程名称 计算机网络实验 专 业 班 级 学 生 姓 名 学 号 指 导 教 师 2012 至 2013 学年第 一 学期第 1 至 18 周 <计算机网络实验>实验报告 __2012 ...
- 如何使用vps 异地组网_使用ZEROTIER异地组建内网(局域网)
一.注册账号(该网站打开比较慢,但并不影响组网后的网速) 二.建立虚拟局域网网(获取Network ID) 1.选择菜单栏的Networks菜单 2.选择创建网络 3.注意获取到的Network ID ...
最新文章
- memcached监控的几种方法(nagios等)
- android 学习笔记之图形算法
- java中let_java Signleton模式详解及示例代码
- JavaScript 之 特殊运算符
- 用NiceTool在微信浏览器中下载APP
- Ubuntu 软件安装
- ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(二)
- python的魔法方法--__
- 设置tomcat 编译文件位置【转】
- App设计灵感之十二组精美的智能家居App设计案例
- mybatis mapper文件找不到_MyBatis 面试题
- cad高程如何提取到cass软件_建筑CAD软件中如何设置墙厚标注? - 数码区
- 基于FPGA的FFT设计
- DPDK在Linux用户级执行环境中执行EAL
- 利用React/anu编写一个弹出层
- 数据集中异常值的处理之lof,iforest算法
- 05.日志框架与Spring Boot日志全篇
- solaris与linux区别,Solaris和Linux的区别
- python图片转gif
- word数学公式快捷键-高效率办公技能get