各位摸鱼界的资深选手们,请竖起你们的鱼鳍听好了!
你是不是经常在公司想干点私活,又不想在装有安全监控的公司电脑上操作?别慌,摸鱼大师来支招了!
买台公网服务器?得了吧,我们是什么人?苦命打工人!工资刚够买个泡面,哪来的闲钱?最多薅点羊毛,整台便宜货。但那玩意儿跟鸡肋似的,食之无味,弃之可惜,用起来卡得像PPT放映。
转念一想,你家里那台吃灰的高性能游戏本,是不是正躺在角落里喊”我还年轻,我还可以”?
来来来,我教你个绝招:用薅来的羊毛服务器当个”媒婆”,牵线搭桥,让你公司的电脑和家里那台闲得发慌的游戏本来个”网恋”。这样一来,你就可以在老板眼皮子底下,光明正大地”远程摸鱼”啦!
背景
各位摸鱼界的老司机们,让我们来聊聊那些年我踩过的坑:
先说说frp反向代理,这玩意儿就像是给家里装了个后门,但问题是,这门锁不太靠谱。特别是要是暴露了Windows的3389远程连接端口,那简直就是在裤裆里别把剪刀,太危险了!
然后是cloudflare的隧道,听起来很高大上,但用起来就像是用蜗牛送快递,慢得让人想砸电脑。
再来说说向日葵、todesk这些”网红”软件,它们就像是穿着裙子的大老爷们,看着挺美,其实漏洞百出。要是家里电脑存了些不可描述的资源,一旦泄露,怕是要哭晕在厕所。
tailscale和zerotier?嗯,这两位倒是挺靠谱的异地组网方案,但没有中继服务器的时候,容易不稳定。还要依赖第三方,处女座的我不是自己手搓的不放心啊。
好了,废话不多说,现在让我们来看看今天的主角——wireguard!
wireguard的介绍
wireguard就是那种”干活不吭声,吭声就干大活”的主。它不像其他其他VPN那样婆婆妈妈,配置起来简单得像是在玩乐高积木。而且,它的代码量比其他VPN协议少得可怜,就像是一个极简主义者的衣柜——简洁,但每件都是精品。
安全?wireguard使用最先进的密码学,节点直接都有单独的密钥对加密通信,让你在公网上也能放心地传输数据。也不像frp那样需要暴露端口,wireguard就像是一个隐身侠,不会对外暴露任何端口。
高性能?那是必须的!wireguard就像是一台超跑,轻量级设计让它能够以光速般的速度传输数据。它直接集成在Linux内核中,减少了数据在用户空间和内核空间之间的拷贝,大大提高了效率。
跨平台?那是必须的!WireGuard 被设计为通用 VPN,小到嵌入式设备,大到超级计算机都支持。Windows、Linux、macOS、iOS、Android更是不再话下。
准备工作
- 一台公网服务器
- 一台家用台式
- 一台公司笔记本电脑
公网服务器配置
第一步在服务器上安装wireguard,我使用的是debian12系统作为演示,所以使用以下命令安装:
apt update apt install wireguard
第二步生成密钥对 首先进入wireguard目录
cd /etc/wireguard
执行命令生成公私钥对
wg genkey | tee privatekey | wg pubkey > publickey
执行上面的命令后会生成一对公私钥,这对公私钥就可以用于服务器的配置了
- 在家里windows电脑上安装wireguard 访问https://www.wireguard.com/install/ 下载windows客户端,安装完打开点击“新建空隧道”
接着会自动生成一对公私钥,我们复制保存这里的公钥IXnp***********
我们已经获取到服务器和家里闲置电脑的公私钥之后,我们继续生成工作电脑里的公私钥,如果是windows电脑我们重复上面的操作,如果是mac电脑的话,也是一样的,只是在下载页面换成macos地址进行下载即可。
同样我们获取到工作电脑的公钥
nAmX********
我们回到服务器上,在/etc/wireguard/目录下,创建并编辑wg0.conf文件
vi wg0.conf
在文件中添加以下内容:
[Interface]
PrivateKey = YF4+rBwt6YS5M+0EjNcnxnI3pTTSbLmklp4xY0SR4VY= #填写本机的privatekey 内容
Address = 10.8.8.1 #指定本机虚拟局域网IP
ListenPort = 51820 # 服务端监听端口
[Peer]
PublicKey = IXnP+KTnuvvpXo4aXqAMTEwSSC8/cZ3ITjnFd4HWpFM= #家里电脑的公钥
AllowedIPs = 10.8.8.10/32 #家里电脑的虚拟局域网IP
[Peer]
PublicKey = nAmXdOTFTg8nGhj4i+yHOs3OFsUSF2ZbvfHaRYkeeyk= #公司电脑的公钥
AllowedIPs = 10.8.8.11/32 #公司电脑所使用的虚拟局域网IP
配置好后如下
接着我们启动服务器wireguard
wg-quick up wg0
配置好后,接下来需要去开启安全组,记住wireguard用的是UDP协议,所以一定要选择UDP
配置家里的台式电脑
回到刚刚家里台式电脑的wireguard页面,增加如下配置
[Interface]
PrivateKey = SNtpYhgEgkfywUdI1M30KSjo3TwrYck+F7B9ZWfzGk4= #本地私钥
Address = 10.8.8.10/32 #这个IP是在服务器里指定的IP
[Peer]
PublicKey = ymM/mjeckPX8d2ZpVvyv3EHU3uvPFIRaY/IIkLK7hkU= #服务器wireguard的公钥PublickKey
AllowedIPs = 10.8.8.0/24 #允许访问的列表我们设置为网段
Endpoint = server-ip:51820 #远程服务器的公网地址
PersistentKeepalive = 25 #为防止自动断开,需要设置心跳
配置好后,我们点击连接,连接成功后,状态会变绿
我们这时候去服务器端检测一下,连接情况,执行wg
命令后,发现家里的这台已经连上,并且有数据传输。
wg
最后我们再到家里这台电脑ping一下服务器的内网地址,看是不是已经通了。发现确实通了,延迟是5、6ms,相当哇塞。
配置工作电脑
我们继续按照配置家里电脑,在工作电脑上配置
[Interface]
PrivateKey = 0HhETKv0aGb2A5aCjG7S8cfM4x3DjWqNkkEEuaNyF2w= #本地私钥
Address = 10.8.8.11/32 #这个IP是在服务器里指定的工作电脑的IP
[Peer]
PublicKey = ymM/mjeckPX8d2ZpVvyv3EHU3uvPFIRaY/IIkLK7hkU= #服务器端的公钥
AllowedIPs = 10.8.8.0/24 #允许访问的列表我们设置为网段
Endpoint = server-ip:51820 #远程服务器的公网地址
PersistentKeepalive = 25 #为防止自动断开,需要设置心跳
然后启动连接后,我们到服务器上去查看连接情况
在工作电脑上ping一下服务端,已经通了
再用工作电脑ping一下家里的电脑哈,在ping家里的windows前,需要开启windows的ping回显,我这里windows11默认禁ping。我们先去开启一下。
打开防火墙—>点击高级设置—>点击入站规则—>开启ICMPv4回显
打开后,我们用工作电脑10.8.8.11 ping一下家里电脑10.8.8.10,发现已经通了
远程连接家里电脑
通了之后,我想用工作电脑远程连接家里的windos电脑。
需要先开启windows11的远程桌面连接
开启远程桌面后,如果是windows电脑,开启本地的远程桌面连接程序连接,
如果是macOS,需要下载”Microsoft Remote Desktop”这个软件,需要非大陆apple ID才能下载
下载后填入家里电脑IP 10.8.8.10,就能连接了
WireGuard,让你的远程家庭办公不再是”Mission Impossible”
就这样,你的”家庭办公特工网络”已经建立完成!现在你可以像电影里的超级黑客一样,在咖啡厅里优雅地啜饮一口拿铁,同时远程操控家里的超级计算机(好吧,其实就是你的普通台式机)。