PO0用了一个月了确实挺好的,使用中的技巧分享如下
半官方的指导(可以略过)
https://wiki.kele.my/guide/getting-started
#DD PO0
下载脚本po0.sh
脚本来自于:
https://www.nodeseek.com/post-539840-1
上传po0.sh到po0机器的/root
赋予执行权限
chmod +x po0dd.sh
执行
./po0dd.sh
#升级debian13(不需要升级的也可以跳过这一步)
修改软件源为 Debian 13 (Trixie)
sed -i ‘s/bookworm/trixie/g’ /etc/apt/sources.list
这一步不需要
# 如果有 sources.list.d 下的配置文件,也需要修改
sed -i ‘s/bookworm/trixie/g’ /etc/apt/sources.list.d/*.list
执行系统升级
apt update
apt upgrade -y
apt dist-upgrade -y # 或使用 apt full-upgrade -y
#设置nftables转发
安装nftales
apt update
apt install -y nftables
开启 IPv4 转发:
cat >/etc/sysctl.d/99-po0-forward.conf <<‘EOF’
net.ipv4.ip_forward=1
EOF
sysctl –system
修改配置文件(sample见另一个文件)
/etc/nftables.conf
这里配置了三个PO0端口匹配不同的RFCHost的机器,如果你有小于等于3个端口要配置,可以仅配置小于等于3个端口;如果有大于3个端口要配置,不光要添加上面的线路,还要添加下面规则。30001和8007都是示例
#!/usr/sbin/nft -f
# 出口机公网 IP
define RELAY_LAN_IP = xxx.xxx.xxx.xxx
# 线路 1:CTC
# Po0的端口
define PORT_IN_1 = 30001
# CTC的公网IP
define DEST_IP_1 = xxx.xxx.xxx.aaa
# CTC的端口
define DEST_PORT_1 = 8007
# 线路 2:JINX
define PORT_IN_2 = 30002
define DEST_IP_2 = xxx.xxx.xxx.bbb
define DEST_PORT_2 = 8007
# 线路 3:JP
define PORT_IN_3 = 30003
define DEST_IP_3 = xxx.xxx.xxx.ccc
define DEST_PORT_3 = 8007
flush ruleset
table ip nat {
chain prerouting {
type nat hook prerouting priority dstnat; policy accept;
meta l4proto { tcp, udp } th dport $PORT_IN_1 dnat to $DEST_IP_1:$DEST_PORT_1
meta l4proto { tcp, udp } th dport $PORT_IN_2 dnat to $DEST_IP_2:$DEST_PORT_2
meta l4proto { tcp, udp } th dport $PORT_IN_3 dnat to $DEST_IP_3:$DEST_PORT_3
}
chain postrouting {
type nat hook postrouting priority srcnat; policy accept;
# 发往出口机的流量,把源地址改为 Po0 内网 IP
ip daddr $DEST_IP_1 meta l4proto { tcp, udp } th dport $DEST_PORT_1 snat to $RELAY_LAN_IP
ip daddr $DEST_IP_2 meta l4proto { tcp, udp } th dport $DEST_PORT_2 snat to $RELAY_LAN_IP
ip daddr $DEST_IP_3 meta l4proto { tcp, udp } th dport $DEST_PORT_3 snat to $RELAY_LAN_IP
}
}
table ip filter {
chain forward {
type filter hook forward priority 0; policy accept;
# MSS 调整,减少 MTU 不匹配导致的速度慢或断流
ip daddr { $DEST_IP_1, $DEST_IP_2, $DEST_IP_3 } tcp flags syn tcp option maxseg size set 1452
}
}
检查配置:
nft -c -f /etc/nftables.conf
应该是没有输出,配置文件才是没有错误
配置开机启动:
nft -f /etc/nftables.conf
systemctl enable nftables
systemctl restart nftables
#哪吒Nezha探针安装
下载最新agent
浏览器下载
https://github.com/nezhahq/agent/releases
或者从VPS上面下载
wget https://github.com/nezhahq/agent/releases/latest/download/nezha-agent_linux_amd64.zip
上传上面下载的agent到po0机器的tmp目录
创建文件夹
mkdir -p /opt/nezha/agent
安装unzip
apt install unzip -y
解压缩
unzip /tmp/nezha-agent_linux_amd64.zip -d /opt/nezha/agent
生成配置文件(注意这里的2096端口也是CF支持的一个TLS回源端口,PO0封禁了常用TLS端口;client_secret自己去nezha面板通过创建一个新的服务器获取)
tee /opt/nezha/agent/config.yml >/dev/null <<EOF debug: false log: console: level: info enable: true server: "nezha.jollyroger.top:2096" tls: true client_secret: "填自己的" disable_auto_update: true disable_force_update: true disable_command_execute: true EOF
安装 systemd 服务
cd /opt/nezha/agent
./nezha-agent service -c /opt/nezha/agent/config.yml install
启动agent
systemctl start nezha-agent
systemctl enable nezha-agent
如果要debug(配置文件里面的debug要改成true)
/opt/nezha/agent/nezha-agent -c /opt/nezha/agent/config.yml
