今天和上次一样,在网上闲逛的时候又发现了一个名为rinetd
的流量转发工具,同样想来折腾试试
,所以就又写了一个自用的简单小脚本。
用法
贴一下github
地址,网上的地址似乎都不怎么对。。。
boutell/rinetd
不过似乎是建议我们用一个还在维护的版本
samhocevar/rinetd
具体的文档大家可以自己去看。
脚本
脚本如下,自己用的是Debian10,其它系统没试过,不过似乎问题应该不大(???)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
#!/bin/bash
RINETD_VERSION="0.73"
# 注意先装好gcc和make等依赖
install_rinetd() {
apt update && apt upgrade -y # 我用的Debian10,根据自己系统改一下
apt install -y gcc make
cd ~
wget "https://github.com/samhocevar/rinetd/releases/download/v${RINETD_VERSION}/rinetd-${RINETD_VERSION}.tar.gz"
tar -xzf rinetd-${RINETD_VERSION}.tar.gz
cd rinetd-${RINETD_VERSION}
mkdir build && cd build
../configure && make && make install
echo "" >/usr/local/etc/rinetd.conf
# 设置启动项
cat <<EOF >/lib/systemd/system/rinetd.service
[Unit]
Description=rinetd
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/sbin/rinetd -c /usr/local/etc/rinetd.conf
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload && systemctl enable rinetd
systemctl start rinetd
# 删除安装文件
cd ~ && rm -rf rinetd-*
echo "安装完成!"
}
restart_rinetd() {
systemctl restart rinetd
}
uninstall_rinetd() {
systemctl stop rinetd && systemctl disable rinetd
rm -f /lib/systemd/system/rinetd.service
systemctl daemon-reload
rm -f /usr/local/sbin/rinetd
rm -f /usr/local/etc/rinetd.conf
echo "卸载完成!"
}
add_port() {
echo "请输入以下信息: "
read -p "源地址: " src_addr
read -p "源端口: " src_port
read -p "目标地址: " dest_addr
read -p "目标端口: " dest_port
echo "${src_addr} ${src_port} ${dest_addr} ${dest_port}" >>/usr/local/etc/rinetd.conf
restart_rinetd
echo "端口添加完成!"
}
delete_port() {
read -p "请输入要删除的源端口: " del_port
echo "正在删除......"
cat /usr/local/etc/rinetd.conf | sed "/ ${del_port} /d" >/usr/local/etc/rinetd.conf
restart_rinetd
echo "已删除!"
}
clean_config() {
echo "" >/usr/local/etc/rinetd.conf
restart_rinetd
echo "配置已清空!"
}
list_ports() {
echo "配置信息如下:"
echo "---------------------------------------"
echo "|源地址 | 源端口 | 目标地址 | 目标端口|"
echo "---------------------------------------"
cat /usr/local/etc/rinetd.conf
}
work() {
cat >.tmp_rinetd <<EOF
---------- 请选择要进行的操作 ----------
1.安装rinetd
2.卸载rinetd
3.添加端口
4.删除端口
5.清空配置
6.查看端口
7.重新启动
8.停止程序
9.退出脚本
EOF
cat .tmp_rinetd
read -p "请输入选择: " choice
case ${choice} in
1)
install_rinetd
;;
2)
uninstall_rinetd
;;
3)
add_port
;;
4)
delete_port
;;
5)
clean_config
;;
6)
list_ports
;;
7)
restart_rinetd
;;
8)
systemctl stop rinetd
;;
*)
rm -f .tmp_rinetd && exit
;;
esac
rm -f .tmp_rinetd
}
# run script
work
|
其他
设置了开机自启动,重启不需要自己手动启动。
当然也可以自己改一下脚本加进去😄。
同样,版本号之后也可以改成最新的,卸载之后再安装,完成升级。
OVER