作为服务运行¶
设置 R-VPN 服务器以在启动时自动启动并在故障时重启。
systemd(Linux)¶
创建服务文件:
[Unit]
Description=r-vpn Server
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/rvpn-server -c /etc/rvpn/server.toml
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
# 重定向日志到 journal
StandardOutput=journal
StandardError=journal
SyslogIdentifier=rvpn-server
[Install]
WantedBy=multi-user.target
启用并启动:
检查状态:
查看日志:
管理服务¶
| 操作 | 命令 |
|---|---|
| 启动 | sudo systemctl start rvpn-server |
| 停止 | sudo systemctl stop rvpn-server |
| 重启 | sudo systemctl restart rvpn-server |
| 重新加载配置 | sudo systemctl reload rvpn-server |
| 查看日志 | sudo journalctl -u rvpn-server -f |
| 禁用自动启动 | sudo systemctl disable rvpn-server |
TLS 证书自动续期¶
如果使用 Let's Encrypt,请添加部署钩子以在证书续期时重新加载 R-VPN:
测试续期过程:
FreeBSD rc(8)¶
创建 /usr/local/etc/rc.d/rvpn_server:
#!/bin/sh
# PROVIDE: rvpn_server
# REQUIRE: NETWORKING
# KEYWORD: shutdown
. /etc/rc.subr
name="rvpn_server"
rcvar="rvpn_server_enable"
command="/usr/local/bin/rvpn-server"
command_args="-c /usr/local/etc/rvpn/server.toml"
pidfile="/var/run/rvpn-server.pid"
load_rc_config $name
run_rc_command "$1"
chmod +x /usr/local/etc/rc.d/rvpn_server
echo 'rvpn_server_enable="YES"' >> /etc/rc.conf
service rvpn_server start
TUN 模式的 NAT 先决条件¶
如果在 TUN 模式(全隧道 VPN)下运行,服务器必须在启动服务之前配置为 NAT 网关。
Linux¶
# 启用 IP 转发
sudo sysctl -w net.ipv4.ip_forward=1
# 配置 NAT(将 eth0 替换为您的公共接口)
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
使这些设置在重启后持久化:
# Debian/Ubuntu
sudo apt install iptables-persistent
sudo netfilter-persistent save
# RHEL/CentOS
sudo service iptables save
FreeBSD¶
添加到 /etc/rc.conf:
gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
natd_enable="YES"
natd_interface="vtnet0" # 您的公共接口
macOS¶
macOS 不支持服务器端 TUN NAT。对于 TUN 模式服务器,请使用 SOCKS5 模式或 Linux VM。
TUN 模式与 SOCKS5 模式¶
| 方面 | TUN 模式 | SOCKS5 模式 |
|---|---|---|
| 需要 NAT | 是(服务器端) | 否(客户端中继) |
| 流量路由 | 所有应用,全隧道 | 按应用程序 |
| 服务器设置 | IP 转发 + NAT 规则 | 标准 VPN 服务器 |
请参阅 TUN 模式 获取完整的 TUN 模式设置文档。