





















我曾经买过2个小米的摄像头,结果都是严重入坑,因为其海外地区限制;无一例外都需要国内IP地址。外加各种懒,折腾固件就算了;国外转了一圈又回国送人了。
最近聊过领事APP和交警12123 点我穿越门 你可以通过国内手机漫游方式曲线救国一把。但是如果诸如摄像头和扫地机器人这些随时在线的,你就需要来个一键穿梭回国了。这玩意很是神奇,外加爱奇艺,CCTV5的加持,对海外兄弟简直是妥妥的刚需。于是乎,市场上充斥着各种靠谱不靠谱的穿梭机;当然这不是我今天讨论的重点。
划重点:自建一个穿梭机。
2024.10 更新:
标题党就是各种忙,我5月写的这篇,弄到现在才更新。今天是值得纪念的日子,今年工作上各种苦逼的忙到此就告一段落。一是把新来的团队成员给带了起来,至少我不用再冲在一线没日没夜了;二是mission impossible的项目居然就被我硬生生的交付下来了。
项目管理的交付三角一个都没有拉下,还成长了团队;感觉格局高了不是一个档次,给公司赚了几个“亿”有没有。周五是最后一天验收,我只想说一句:海阔天空。
拉回来,前段时间小伙伴说wireguard封端口;测试了一下,Wireguard的UDP特征非常明显,所以被封是早晚的事情。于是我想到了udp2raw做封装,再跑wireguard。
尝试了一把,链路是建立起来了,但是速度奇慢,2Mbps的VPS的带宽完全跑不起来;最后放弃此方案。
所谓柳暗花明,至此Hysteria 2隆重登场:
如此通过passwall图形化界面配置hysteria 2
主流的几家:
VPS和亚马逊的EC2技术实现上虽然不一样,但功能一致,殊途同归。VPS偏向轻型化主机;部署一键穿梭回国那是足够足够了。
特想吐槽的是,国内严格的网络监管,让VPS的配置非常的畸形,用腾讯云举例(其他云大同小异),最便宜的VPS限制3Mbps带宽,然后每月200GB的流量。
呵呵,3M带宽,也就勉强拉个CCTV5。
好吧,哪个便宜那个来,挑了腾讯云(第一年RMB 82),满足VPS的基本需求:
VPS操作系统可以选CentOS (已经EOL了) 或者Ubuntu;搞定SSH密钥之后,就可以远程登录VPS了。
现在主流的软件有两个:wireguard和Shadowsocks
成人的世界我全要,两个我都部署了一遍,性能比较如下:
好在我的需求就是懒人包,存粹冲着扫地机器人去的;最后选择:wireguard
wireguard 虽然应用模式上server/client,但严格意义上是点对点Tunnel。
VPS服务器端
生成密钥,private key自己用,public key给对方(点对点)
查看private key密钥
确认VPS出口网卡,一般都是eth0
创建配置文件,这样用systemctl自动启动wireguard
服务器端配置文件
[Interface]
Address = 172.16.1.254/24
Wireguard 生成虚拟网卡wg0,然后需要给这个虚拟网卡设置一个私有地址,随便挑一个,只要和VPS内网地址不冲突即可。
ListenPort = 51820
Wireguard 监听端口,VPS防火墙要开放这个UDP端口号
SaveConfig = true
每次重启,配置会保留
sudo wg-quick down wg0
sudo nano /etc/wireguard/wg0.conf
sudo wg-quick up wg0
修改配置
PrivateKey = xxxx
粘贴前面生成的private key
PostUp = ufw route allow in on wg0 out on eth0
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PreDown = ufw route delete allow in on wg0 out on eth0
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
客户端连接到服务器端的wg0虚拟网卡后做NAT转换到VPS的出口网卡
[Peer]
配置客户端(wireguard需要点对点)
PublicKey = xxx
粘贴客户端生成的public key
AllowedIPs = 172.16.1.0/24
服务端设置成单点172.16.1.254对多点客户端172.16.1.1-253
wireguard服务器端部署完成
sudo nano /etc/sysctl.conf
net.ipv4.ip_forward = 1
sudo sysctl -p
修改系统配置,允许VPS做路由转发
sudo ufw allow 51820/udp
修改VPS防火墙设置
PC客户端
配置文件和VPS服务器端类似,以Windows为例,手工创建一个配置文件:
[Interface]
PrivateKey = xxxx
粘贴PC客户端的private key
ListenPort = 51820
设置PC客户端的监听端口
Address = 172.16.1.1/24
设置PC客户端wg0虚拟网卡地址
DNS = 223.5.5.5
设置阿里云的DNS服务,Google DNS国内无法使用
[Peer]
PublicKey = xxx
粘贴VPS服务器端的public key
AllowedIPs = 0.0.0.0/0
设置PC客户端的网络数据全部通过VPS转发
Endpoint = VPS服务器端的公网地址:监听端口
PersistentKeepalive = 25
几个版本
以下以ss-libev进行部署
VPS服务器端
“server”:[“0.0.0.0”],
简单配置监听端口和密码
"mode":"udp",
"server_port":8388,
VPS服务器端监听端口
"local_port":1080,
"password":"xxxxx",
设置客户端连接密码
"timeout":60,
"method":"aes-256-gcm"
设置客户端加密方式
sudo ufw allow 8388
修改VPS防火墙设置
sudo systemctl restart shadowsocks-libev
sudo systemctl status shadowsocks-libev
sudo systemctl enable shadowsocks-libev.service
客户端
注:
Openwrt可以同时支持Wireguard和Shadowsocks。但Shadowsocks终究是client proxy模式,想要使用旁路节点的还是Wireguard的部署比较容易。
选择上:
VPS服务器端配置
cat << EOF > /etc/hysteria/config.yaml
listen: :443 #监听端口
#使用自签证书(self-signed)
tls:
cert: /etc/hysteria/server.crt
key: /etc/hysteria/server.key
auth:
type: password
password: <设置VPS认证密码>
masquerade:
type: proxy
proxy:
url: https://baidu.com #伪装网址
rewriteHost: true
EOF
OpenWRT客户端配置
server: :443 #注意开放VPS防火墙 auth:
bandwidth: up: 10 mbps #VPS上行带宽 down: 4 mbps #VPS下行带宽
tls: sni: baidu.com # 伪装网站 insecure: true
socks5: listen: 127.0.0.1:1080 #passwall 监听端口1080 http: listen: 127.0.0.1:8080 #passwall 监听端口1080
部署Hysteria 2在OpenWRT软路由之后,开个CCTV还是奇慢,但是至少解决了扫地机器人联网问题。
进阶玩法可以继续在Hysteria 2通道上封装wireguard;嗯,这个就不折腾了。

此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。