P0o 使用须知(务必先看)

P0o 支持 RFC 全系 HK / JP 机器内网互联。(没有落地的同学可以工单领取 RFC T1 正价年付六折券 29.9刀的大家不要问啦)

同时,P0o 默认禁用了绝大多数海外 IP 的可达性,并且属于强限制环境:

  • 双端禁止 443(同时也常见会封 8443 等 Web 端口)

  • 禁止任何 HTTP/HTTPS 协议的 Web 服务

因此:不要安装任何面板、不要部署站点、不要上 TLS 代理/反代类服务

日常使用建议:直接用 nftables 转发 RFC 运行服务的端口即可。

挂载教程

下面以 P0o 机器作为被监控端、RFC HK/JP 任意一台作为落地/中转 的思路来写。

0)准备一个带鉴权的 HTTP 代理(备用)

先在 落地机(RFC 任意 HK/JP) 上准备一个「用户名密码鉴权」的 HTTP 代理,得到形如:

http://username:password@ip:port

后面会用来给 P0o 的安装脚本临时出网。

1)安装 komari-agent(优先走自动发现)

你可以用 自动发现 或 手动添加。

我这边测试时 自动发现有时刷不出来,但 手动添加稳定可用。下面先写自动发现流程。

由于安装脚本来自 GitHub,P0o 当前 SSH 会话需要先设置临时代理,否则可能拉不下来脚本。

# 1) 临时代理(当前会话生效)

export http_proxy="http://username:password@ip:port"

export https_proxy="http://username:password@ip:port"

export HTTP_PROXY="$http_proxy"

export HTTPS_PROXY="$https_proxy"

export no_proxy="localhost,127.0.0.1,::1,172.31.0.0/16"

export NO_PROXY="$no_proxy"

# 2) 验证一下(显示落地ip)

curl ip.sb

设置好代理后,执行安装命令(把参数替换成你自己的):

说明:探针可能无法正确获取 P0o 的公网 IP,建议手动指定;最后的 --month-rotate 为流量重置日,可选。

bash <(curl -sL https://raw.githubusercontent.com/komari-monitor/komari-agent/refs/heads/main/install.sh) \

-e 探针域名 \

--disable-auto-update \

--disable-web-ssh \

--auto-discovery 自动发现密钥 \

--custom-ipv4 1.10.100.244 \

--month-rotate 重置日期

安装完成后,就不需要临时代理了:直接退出当前 SSH 会话再重新登录,最干净。

2)只让 komari-agent 单独走代理(可选)

komari-agent 以 systemd 服务运行,可以通过环境变量让它单独走代理,不影响系统其他程序。

推荐用 vim 编辑(或者用 SFTP 改完上传都行):

vim /etc/systemd/system/komari-agent.service

在 [Service] 配置块里添加(或补齐)代理环境变量:

Environment="http_proxy=http://username:password@ip:port"

Environment="https_proxy=http://username:password@ip:port"

Environment="HTTP_PROXY=http://username:password@ip:port"

Environment="HTTPS_PROXY=http://username:password@ip:port"

Environment="no_proxy=localhost,127.0.0.1,::1,172.31.0.0/16"

Environment="NO_PROXY=localhost,127.0.0.1,::1,172.31.0.0/16"

示例(仅示意结构,参数按你自己的为准):

[Unit]

Description=Komari Agent Service

After=network.target

[Service]

Type=simple

ExecStart=/opt/komari/agent -e 域名 --disable-auto-update --disable-web-ssh -t token --custom-ipv4 a.a.a.a --month-rotate 15

WorkingDirectory=/opt/komari

Restart=always

User=root

Environment="http_proxy=http://username:password@ip:port"

Environment="https_proxy=http://username:password@ip:port"

Environment="HTTP_PROXY=http://username:password@ip:port"

Environment="HTTPS_PROXY=http://username:password@ip:port"

Environment="no_proxy=localhost,127.0.0.1,::1,172.31.0.0/16"

Environment="NO_PROXY=localhost,127.0.0.1,::1,172.31.0.0/16"

[Install]

WantedBy=multi-user.target

保存后重载并重启:

systemctl daemon-reload

systemctl restart komari-agent

查看日志(20 为行数,可自定义):

journalctl -u komari-agent -n 20 --no-pager

3)如果走代理依然连不上:用 Nginx 在落地机做转发

如果 P0o 对外连不稳/走代理也不行,可以在 落地机 上用 Nginx 做一个 TCP 转发,让 P0o 只需要连落地机即可。

3.1 落地机安装 Nginx(含 stream 支持)

apt install nginx nginx-extras

3.2 配置 nginx.conf(增加 stream 段)

编辑 /etc/nginx/nginx.conf,在最外层加入 stream {}。

把 1.1.1.1:16666 改成 komari 主控的 ip:port(并确保主控端口已放行)。

listen 16666 建议和主控端口一致,方便记忆。

这份配置还保留了Reality SNI 白名单示例,大家可以按需复用:

user www-data;

worker_processes auto;

pid /run/nginx.pid;

include /etc/nginx/modules-enabled/*.conf;

events {

worker_connections 1000;

}

stream {

map "$server_port:$ssl_preread_server_name" $upstream_target {

# Reality 域名白名单

"443:www.cloudflare.com" 127.0.0.1:58421;

default deny;

}

upstream deny {

server 127.0.0.1:1; # 快速失败

}

server {

listen 443 reuseport;

ssl_preread on;

proxy_connect_timeout 3s;

proxy_timeout 1500s;

proxy_pass $upstream_target;

}

server {

listen 16666 reuseport;

proxy_connect_timeout 3s;

proxy_timeout 1500s;

proxy_pass 1.1.1.1:16666;

}

}

重启 Nginx:

systemctl restart nginx

然后可以在浏览器简单验证转发(示例):

http://落地ip:16666

4)回到 P0o:改 Agent 连接为落地转发地址(不再需要代理)

在 P0o 上编辑:

vim /etc/systemd/system/komari-agent.service

•删除之前加的代理环境变量(如果你加过)

•把 -e 的地址改成你的落地 ip:port

•协议用 http://(示例)

[Service]

Type=simple

ExecStart=/opt/komari/agent -e http://落地ip:转发端口 --disable-auto-update --disable-web-ssh --auto-discovery 自动发现密钥 --custom-ipv4 1.10.100.244 --month-rotate 15

WorkingDirectory=/opt/komari

Restart=always

User=root

[Install]

WantedBy=multi-user.target

重载并重启:

systemctl daemon-reload

systemctl restart komari-agent

5)主控一直刷不出小鸡:改用手动添加

  1. 进入 Komari 后台 → 服务器页面 → 右上角 添加 → 手动添加一台服务器

  2. 创建后点 编辑,复制该服务器的 token

  3. 回到 P0o,编辑 /etc/systemd/system/komari-agent.service

• 把 --auto-discovery 自动发现密钥 替换为 -t 服务器token

示例:

ExecStart=/opt/komari/agent -e http://落地ip:转发端口 --disable-auto-update --disable-web-ssh -t 服务器token --custom-ipv4 1.10.100.244 --month-rotate 15

保存后重载并重启即可:

systemctl daemon-reload

systemctl restart komari-agent

到这里一般就能正常挂上啦~