今天讲讲使用Realm进行端口转发,因为俺发现这个工具转发效率还是挺高的,项目地址如下:
https://github.com/zhboner/realm
安装Realm
下载并解压到 /usr/local/ 文件夹:
wget https://github.com/zhboner/realm/releases/download/v2.7.0/realm-x86_64-unknown-linux-gnu.tar.gz -O - | tar -xz -C /usr/local/
#给予运行权限
chmod +x /usr/local/realm
配置文件
支持 json 和 toml 两种格式,推荐 toml 格式,书写结构上更易辨识,如下:
新建一个realm文件夹来存放配置文件:
mkdir /etc/realm
编写配置:
vi /etc/realm/config.toml
[log]
# 日志级别: off,debug,info,error,warn 测试时可用debug, 验证ok可用改成off
level = "off"
# 日志路径,默认是stdout, 标准输出,通常不需要
# output = "/var/log/realm.log"
[network]
# 同时开启tcp和udp
no_tcp = false
use_udp = true
[[endpoints]]
# 第一个本机端口,改0000后面的端口就行了
listen = "0.0.0.0:5000"
# 下面是落地机IP和端口
remote = "1.1.1.1:5001"
# IPv6写法
# remote = "[fd7a:115c:a1e0::bf60:9706]:3306"
# 多端口转发
[[endpoints]]
listen = "0.0.0.0:10000"
remote = "www.google.com:443"
配置开机自启动
vi /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
DynamicUser=true
WorkingDirectory=/etc/realm
ExecStart=/usr/local/realm -c /etc/realm/config.toml
[Install]
WantedBy=multi-user.target
重载一下systemd,启动一下realm就好了:
systemctl daemon-reload
systemctl start realm
常用命令
开机自启
systemctl enable realm
重启realm
systemctl restart realm
查看状态
systemctl status realm