linux使用rinetd做端口映射

其實 Linux 下使用 iptables 實現端口轉發就足夠了,例如:

iptables -t nat -I PREROUTING -p tcp --dport 555 -j DNAT --to-destination 2.2.2.2:3389

iptables -t nat -I POSTROUTING -j MASQUERADE

iptables配置較為複雜,作為小白的我還是選擇了使用 rinetd。

雖然 rinetd 有點古老,但很短小、高效,對於解決這種問題來說是非常完美的。

linux使用rinetd做端口映射

Rinetd原理圖

官網:http://www.boutell.com/rinetd/

方法

安裝 rinetd

可以使用apt-get或者yum安裝

root權限執行:

wget http://www.boutell.com/rinetd/http/rinetd.tar.gz

tar -xvf rinetd.tar.gz

cd rinetd

sed -i 's/65536/65535/g' rinetd.c //修改rinetd.c,將查詢到的65536修改為65535

mkdir /usr/man/

make && make install

安裝在 /usr/sbin 目錄下

創建配置文件

nano /etc/rinetd.conf

填入配置信息,格式為:

SourceAddress SourcePort DestinationAddress DestinationPort

綁定的地址 綁定的端口 轉發的地址 轉發的端口

綁定地址的端口(數據)轉發地址的端口

在每一單獨的行中指定每個要轉發的端口。

源地址和目的地址都可以是主機名或 IP 地址,IP 地址為0.0.0.0 則將rinetd 綁定到任何可用的本地IP地址上

示例:

跳板 VPS 的 IP 為1.1.1.1, rinetd已經安裝在跳板 VPS 上。服務器的 IP 為2.2.2.2。

0.0.0.0 555 2.2.2.2 3389

可實現 訪問跳板 VPS(1.1.1.1)的555端口就等於訪問服務器(2.2.2.2)的3389端口。

程序啟動,停止,查詢,自啟動

創建完配置文件後,別忘了啟動程序才能生效。

啟動命令:/usr/sbin/rinetd

停止命令:killall rinetd

查看是否啟動:netstat -tanulp|grep rinetd

開機啟動:

在 /etc/rc.local 文件中,添加 /usr/sbin/rinetd 啟動命令即可。

還需要在iptables裡面開啟端口。


分享到:


相關文章: