通過rinetd實現port轉發來訪問內網的服務
一、 問題描寫敘述
通過外網來訪問內網的服務
二、 環境要求
須要有一臺能夠外網訪問的機器做port映射。通過數據包轉發來實現外部訪問阿裏雲的內網服務
三、 操作方法
做port映射的方案有非常多。Linux下的ssh tunnel和windows下的portmap等等,這裏分享一個更穩定和簡單的小工具rinetd
四、 下載安裝
$ wget http://www.boutell.com/rinetd/http/rinetd.tar.gz $ tar -xvf rinetd.tar.gz $ cd rinetd # 改動port範圍,否則會報錯 $ sed -i ‘s/65536/65535/g‘ rinetd.c $ mkdir /usr/man&&make&&make install |
五、 創建配置文件:
$ vim /etc/rinetd.conf # allow 192.168.2.* # deny 192.168.1.* # bindaddress bindport connectaddress connectport 114.215.143.167 4408 10.174.205.239 3306
logfile /var/log/rinetd.log |
六、 增加到開機啟動腳本中
$ echo rinetd >> /etc/rc.local $ cat /etc/rc.local |
七、 啟動rinetd
$ rinetd -c /etc/rinetd.conf # 檢查進程是否啟動 $ ps aux | grep -I rinetd # 檢查監控的port是否開啟 $ netstat -tanop | grep 4408 |
八、 驗證
待 rinetd啟動後,就已經能夠通過外網的4408port連接到處於內網模式的10.174.205.239:3306數據庫了
九、 其他說明
除了這個場景,其他的內網port轉發也都能夠(因為FTP協議相對特殊,無法實現轉發)
配置文件裏能夠對某個IP或者IP段進行同意/拒絕,藉此提高內網port的安全性。
假設二者沖突,拒絕優先。
rinetd也有Windows版本號,配置方法全然同樣,在此不再贅述。
通過rinetd實現port轉發來訪問內網的服務