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组建大内网相关推荐

  1. 快速搞明白公网和私网的区别(组建私网的网络号)

    文章目录 公网/外网 私网/内网 组建私网的原因 组建私网的网络号 公网/外网 就是我们通常所说的互联网 私网/内网 一个私有网络,仅限于内部通信 组建私网的原因 IP地址不够用的解决方法: 1.DH ...

  2. 4台计算机组建对等网结构图,第4章 组建Windows对等网.ppt

    <第4章 组建Windows对等网.ppt>由会员分享,可在线阅读,更多相关<第4章 组建Windows对等网.ppt(23页珍藏版)>请在人人文库网上搜索. 1.第4章 组建 ...

  3. 4台计算机组建对等网结构图,对等网的建.doc

    对等网的建 实验名称:对等网的组建及网络打印机的安装 班级:数字媒体技术10级 学号:2010222106 姓名:张壮志 一.实验目的: (1)理解对等网的含义与特点 : (2)熟悉交换机(或集线器) ...

  4. 计算机网络《组建对等网》实验报告指导书

    说明: 水平有限,希望能帮到大家,如果发现错误请联系我修改,谢谢. 我发布的所有文字图片资料,都可以在公众号上联系我,也有一些其他的资料,需要的话都可以联系我,但是希望不要作为商用,谢谢~ 实验(项目 ...

  5. wireguard组建一个内网环境

    文章目录 前言 一.什么是wireguard? WireGuard穿透预期效果图 开始搭建wireguard 中继服务器搭建 peer1客户端搭建: peer2客户端搭建: gateway 添加 pe ...

  6. 使用 WireGuard 组建非对称路由以降低延迟

    ❝ 本文转自遨游者的博客,原文:https://aoyouer.com/posts/wireguard-asymmetric-routing/,版权归原作者所有.欢迎投稿,投稿请添加微信好友:clou ...

  7. 局域网组建(一) 远程办公实现 — WireGuard组建跨地域局域网(AlmaLinux+Docker)

    远程访问局域网设备通常采用内网穿透或VPN隧道.WireGuard是一种采用UDP协议的新型VPN技术.WireGuard提供的是节点与节点的网络连接形式,除了可以实现传统VPN以服务器为网关的星型拓 ...

  8. 计算机网络组建对等网,计算机网络实验二组建WINDOWS环境下的对等网并共享资源.pdf...

    实验课程名称 计算机网络实验 专 业 班 级 学 生 姓 名 学 号 指 导 教 师 2012 至 2013 学年第 一 学期第 1 至 18 周 <计算机网络实验>实验报告 __2012 ...

  9. 如何使用vps 异地组网_使用ZEROTIER异地组建内网(局域网)

    一.注册账号(该网站打开比较慢,但并不影响组网后的网速) 二.建立虚拟局域网网(获取Network ID) 1.选择菜单栏的Networks菜单 2.选择创建网络 3.注意获取到的Network ID ...

最新文章

  1. memcached监控的几种方法(nagios等)
  2. android 学习笔记之图形算法
  3. java中let_java Signleton模式详解及示例代码
  4. JavaScript 之 特殊运算符
  5. 用NiceTool在微信浏览器中下载APP
  6. Ubuntu 软件安装
  7. ML之XGBoost:XGBoost参数调优的优秀外文翻译—《XGBoost中的参数调优完整指南(带python中的代码)》(二)
  8. python的魔法方法--__
  9. 设置tomcat 编译文件位置【转】
  10. App设计灵感之十二组精美的智能家居App设计案例
  11. mybatis mapper文件找不到_MyBatis 面试题
  12. cad高程如何提取到cass软件_建筑CAD软件中如何设置墙厚标注? - 数码区
  13. 基于FPGA的FFT设计
  14. DPDK在Linux用户级执行环境中执行EAL
  15. 利用React/anu编写一个弹出层
  16. 数据集中异常值的处理之lof,iforest算法
  17. 05.日志框架与Spring Boot日志全篇
  18. solaris与linux区别,Solaris和Linux的区别
  19. python图片转gif
  20. word数学公式快捷键-高效率办公技能get

热门文章

  1. 混沌序列加密matlab,基于三维Lorenz混沌系统和Matlab仿真工具实现混沌数字视频加密...
  2. 语音识别之前端处理及相关算法
  3. 读书·架构整洁之道(原则篇)
  4. RSA+AES混合加密实例
  5. 『团队协作的五大障碍』读书所得
  6. 网站标题关键词SEO优化技巧
  7. 关键词优化推广需要怎么做?有哪些方法和技巧
  8. ofo开放平台成立了,mobike该做些什么?
  9. RK平台 USB转RS485
  10. 计算机学院方阵入场词,运动会入场方队解说词