Introduction
最近在玩一个端口转发工具, 叫做 realm. realm
据说效率比较高, 支持bbr. (虽然我对速度的要求也不那么高
之前使用的各种转发方式, 例如 iptables, gost, 大多使用的都是一键脚本. 自从某某根据地垮台之后, 也没有更多的人自发编写一键脚本了
选择 realm正是因为他容易使用, 不依赖一键脚本, 自己手动操作也不那么麻烦.
Deployment
配置文件
realm支持命令行运行, 也支持通过配置文件运行:
./realm -c /path/to/file 配置文件支持 json和 toml, 我更加喜欢 toml, 因为他更加清晰, 并且注释格式也非常简单.
[[endpoints]]
listen = "0.0.0.0:123"
remote = "test.com:456"
[[endpoints]]
listen = "0.0.0.0:111"
remote = "8.8.8.8:222"守护进程
执行命令运行 realm转发程序都属于在前台运行, 即使通过 tmux, screen在后台运行, 如果机器被重启, 则转发程序结束.
为了解决这个问题, 我们采用系统服务的形式来守护程序.
将下面的配置信息写入文件 /etc/systemd/system/realm.service
[Unit]
Description=realm
After=network-online.target
Wants=network-online.target systemd-networkd-wait-online.service
[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5s
ExecStart=/root/realm -c /root/ss.toml
[Install]
WantedBy=multi-user.target使修改生效, 开机自启, 重启服务.
systemctl daemon-reload
systemctl enable realm
systemctl restart realm
# 然后可以通过systemctl status realm查看服务运行状态