up
fffggg 发布的帖子
我们先回想一下gost实现的端口转发,走了一个ws/tls隧道
那么,有心人应该注意到了,wireguard endpoint这个东西,如果endpoint上是一个gost呢?
除了gost,还有udp2raw
参考 https://www.wireguard.com/install/
参考 https://kotori.net/2018/10/21/centos-安装最新版的wireguard/
一、安装linux-headers(请自己帮自己)
倘若失败,请更新到最新内核
什么?想和魔改bbr/锐速共存?这边建议您自行谷歌呢
二、安装wireguard
https://www.wireguard.com/install/ 找对应系统的安装命令
三、检查是否安装成功
modprobe wireguard
# 如果安装失败,则有以下输出
modprobe: FATAL: Module wireguard not found in directo...
# 此时请重新回到第一步
四、开启ipv4转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
五、生成公钥私钥
mkdir /etc/wireguard
cd /etc/wireguard
wg genkey | tee privatekey | wg pubkey > publickey
六、配置wg
# 服务端
cat > /etc/wireguard/wg0.conf << EOF
[Interface]
PrivateKey = PRIVATEKEY
Address = 192.168.2.1/24
ListenPort = PORT
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o INTERFACE -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o INTERFACE -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o INTERFACE -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o INTERFACE -j MASQUERADE
SaveConfig = true
EOF
# 然后修改 PORT 和 INTERFACE,有需要把 Address 也改掉
# 服务端 设置客户端peer
# ALLOWED_IP_CIDR 若是0.0.0.0/0,即为全局转发,千万别通过ssh开这个
# 这边建议您将其设置为远端wg的ip呢,例如 192.168.2.222/32
wg set wg0 peer ${CLIENT_PUBLICKEY} allowed-ips ${ALLOWED_IP_CIDR} endpoint ${REMOTE_ADDR} persistent-keepalive 25
客户端的配置与服务端一样的呢,如果想要当成全局vpn用,客户端就把ALLOWED_IP_CIDR改为0.0.0.0/0即可
如果客户端是linux呢?只能请楼下的大神回答一下了,我不会
七、管理
# 开机自启
systemctl enable wg-quick@wg0
# 开关
wg-quick up|down wg0
# 查看状态
wg
最后,开了wg的机器想设置内网的端口转发时,本地ip应该选择wg上的ip哟
本地端口通过gost隧道转发到远程端口
# 图示
gost 国内 A -> gost 国外 B -> ss/ssr/v2ray单端口 C
国内 A 运行命令示例如下
走socks5隧道,当然,你也可以套v2ray客户端的socks5
gost -L=tcp://:2222/<C_ss_ip>:<C_ss_port> -F socks5://<B_gost_socks5_ip>:1080
走tls隧道
gost -L=tcp://:2222/<C_ss_ip>:<C_ss_port> -F tls://<B_gost_tls_ip>:443
走ws隧道
gost -L=tcp://:2222/<C_ss_ip>:<C_ss_port> -F ws://<B_gost_ws_ip>:443
怎么用?
国内A 端口 2222,运行这个gost
国外C 端口 2222,有个 ss/ssr/v2ray单端口
再运行一个gost服务端 B,如果要开tls隧道,就运行tls服务端。
咦?不会开gost服务端?这边建议楼下的大神回答一下,当然您也可以试着阅读一下gost中文文档,虽然中文学习还是有点难度的哟
然后你的狗用户就可以http混淆连国内A 端口2222,gost接管数据通过tls或其他协议转发出国
清楚了么。
更多详见gost官方文档
https://docs.ginuerzh.xyz/gost