NPC连接双NPS服务器离线自动切换

一、NPS 双服务端高可用配置步骤


1、确认服务端环境
假设您有两台 NPS 服务端:

服务器公网IP服务端口Web 管理端口
Server A203.0.113.1080248080
Server B203.0.113.2080248080

关键前提:
两台服务端需使用相同的 vkey(在 nps.conf 中配置)
防火墙已放行 8024 端口(客户端连接端口)

2、 配置客户端(/root/nps/npc.conf)
修改客户端配置文件(核心步骤)
sudo nano /root/nps/npc.conf

#关键配置(支持双服务端故障转移):
[common]
server_addr=203.0.113.10:8024,203.0.113.20:8024 # 用逗号分隔多个服务端
vkey=your_secure_vkey # 必须与两台服务端的 nps.conf 一致
daemon=true # 后台运行

#高可用参数
conn_type=tcp
retry_time=3 # 连接失败后重试间隔(秒)
retry_count=3 # 单次重连尝试次数
auto_switch=true # 自动切换到可用服务端

必须检查:
vkey 值需与 两台服务端 的 nps.conf 中 vkey 完全一致
服务端 IP 顺序:优先连接第一个 IP,失败后自动切第二个

3、服务端配置验证(两台服务端均需检查)
确保 nps.conf 包含:

[vkey]
vkey = your_secure_vkey # 与客户端配置一致

重启服务端使配置生效

4、Server A 和 Server B 均执行

cd /root/nps
sudo ./nps stop
sudo ./nps start


二、客户端服务化配置(开机自启)


1、创建 Systemd 服务
执行以下指令创建Systemd服务

sudo tee /etc/systemd/system/npc.service <<‘EOF’
[Unit]
Description=NPS Client Service
After=network.target

[Service]
User=root
WorkingDirectory=/root/nps
ExecStart=/root/nps/npc -config=/root/nps/npc.conf
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target
EOF

2、启用服务
sudo systemctl daemon-reload
sudo systemctl start npc
sudo systemctl enable npc
sudo systemctl status npc # 验证状态


三、高可用功能验证


1、模拟服务端故障
在 Server A 上临时关闭服务端

cd /root/nps
sudo ./nps stop

2、检查客户端自动切换
实时监控客户端日志
tail -f /root/nps/logs/npc.log
成功标志:
/06/02 08:15:01.000 [INFO] Connecting to server 203.0.113.20:8024…
/06/02 08:15:01.200 [INFO] Connected to server 203.0.113.20:8024

客户端会在 retry_time × retry_count 时间内自动切换到备用服务端(本例:3秒×3次=9秒内切换)


四、关键故障排查


1、问题现象:客户端只连接第一个服务端,不自动切换
原因及解决方案:

现象原因解决方案
日志显示 connect: connection refused 但未切换auto_switch=false确保 npc.confauto_switch=true
切换后隧道中断服务端 vkey 不一致检查两台服务端 nps.confvkey
重连超时过长retry_time 设置过大调整为 retry_time=2(建议2-5秒)


2、快速诊断命令:
检查客户端当前连接的服务端

grep “Connected to server” /root/nps/logs/npc.log | tail -1

3、强制触发重连测试
sudo pkill -f npc && sudo systemctl start npc


五、生产环境建议

1、服务端负载均衡:
在客户端配置中添加权重(NPS v3.26.0+ 支持):
server_addr=203.0.113.10:8024#1,203.0.113.20:8024#2 # #后数字=权重(值越大优先级越高)

2、健康检查增强:
在 npc.conf 中添加:
health_check_interval=10 # 每10秒检查服务端存活
health_check_timeout=3 # 超时3秒判定为故障

3、避免单点故障:
两台服务端必须部署在不同物理机/可用区
使用 DNS 轮询(如 nps.example.com 解析到两个IP),但 NPS 客户端不支持 DNS 轮询,仍需在 server_addr 中显式写 IP

3、最后验证清单
客户端配置:/root/nps/npc.conf 包含 多个服务端IP+auto_switch=true
两台服务端 nps.conf 的 vkey 完全一致
执行 systemctl status npc 显示 active (running)
手动停止主服务端后,客户端 9秒内自动切换到备用服务端(根据 retry_time×retry_count)
通过 npc.log 确认隧道流量正常传输

4、重要提醒:
操作路径是 /root/nps/,所有命令必须针对 NPS 工具链(nps/npc)

当前配置需按 NPS 双服务端配置 处理,第二台VPS服务器仅作为备用,而非负载均衡;

执行后, npc 客户端将实现双 NPS 服务端的高可用连接。

可使用域名代替IP地址配置NPC的服务器地址,在客户端较多时,且服务器变更ip可以不用修改大量客户端配置文件: server_addr=abc1.com:8024,abc2.com:8024

如仍有问题,执行日志监测:
cat /root/nps/npc.conf | grep -E “server_addr|vkey|auto_switch”
tail -20 /root/nps/logs/npc.log

Our Services

Worpress

Lorem ipsum dolor amet consectetur adipiscing elit. Nunc mi dui placerat eu faucibus vel, efficitur quis magna. Pellentesque habitant morbi tristique senectus et netus et malesuada.

Read More

Web Design

Lorem ipsum dolor amet consectetur adipiscing elit. Nunc mi dui placerat eu faucibus vel, efficitur quis magna. Pellentesque habitant morbi tristique senectus et netus et malesuada.

Read More

Ecommerce

Lorem ipsum dolor amet consectetur adipiscing elit. Nunc mi dui placerat eu faucibus vel, efficitur quis magna. Pellentesque habitant morbi tristique senectus et netus et malesuada.

Brand Now

SEO

Lorem ipsum dolor amet consectetur adipiscing elit. Nunc mi dui placerat eu faucibus vel, efficitur quis magna. Pellentesque habitant morbi tristique senectus et netus et malesuada.

Read More

Our Team

zahera

Zahera

(HR)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vel tempor sem. Vestibulum suscipit faucibus sem ut porta. Integer ut justo euismod, auctor turpis et

Alex

Alex

(CEO)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vel tempor sem. Vestibulum suscipit faucibus sem ut porta. Integer ut justo euismod, auctor turpis et

Alex

Sara

(CCO)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vel tempor sem. Vestibulum suscipit faucibus sem ut porta. Integer ut justo euismod, auctor turpis et

Mark

Mark

(Manager)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vel tempor sem. Vestibulum suscipit faucibus sem ut porta. Integer ut justo euismod, auctor turpis et

Testimonials

  • Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit,
    Safira
    (Quia, CEO)
  • At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga.
    Alana
    (Wirate, PA)
  • Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
    Sara
    (Yahoo, Manager)

Our Partners