很多時(shí)候我們搭建某些服務(wù)后,發(fā)現(xiàn)本地連接效果不給力,但是我們有一個(gè)國(guó)內(nèi)機(jī)器,由于國(guó)內(nèi)機(jī)器出去走BGP線路,國(guó)內(nèi)機(jī)器連接國(guó)外效果好,本地連接國(guó)內(nèi)效果也不錯(cuò),這樣我們就可以搭建一個(gè)跳板,從國(guó)內(nèi)去連接國(guó)外服務(wù)器,常見(jiàn)的轉(zhuǎn)發(fā)有rinetd、Haproxy、iptables、socat,前面2種只能轉(zhuǎn)發(fā)TCP,后面TCP/UDP都可以轉(zhuǎn)發(fā)。
系統(tǒng)要求:支持CentOS 6+ 、Debian 7+、Ubuntu 14+。
腳本說(shuō)明:腳本默認(rèn)開(kāi)啟UDP、TCP轉(zhuǎn)發(fā),帶開(kāi)機(jī)自啟功能,且一次只能轉(zhuǎn)發(fā)單個(gè)端口,如果想轉(zhuǎn)發(fā)多個(gè)端口請(qǐng)重復(fù)運(yùn)行本腳本。
提示:該腳本在Vultr各個(gè)系統(tǒng)均測(cè)試通過(guò),包括最新的Ubuntu 18.04,如果有其它問(wèn)題可以留言。使用root運(yùn)行以下命令:
wget https://cikeblog.com/s/socat.sh ; bash socat.sh
按要求輸入以下信息:
#如果你要用本地服務(wù)器的3333端口轉(zhuǎn)發(fā)IP為1.1.1.1服務(wù)器的6666端口,那就依次填入指定參數(shù)。
請(qǐng)輸入本地端口:3333請(qǐng)輸入遠(yuǎn)程端口:6666請(qǐng)輸入遠(yuǎn)程IP:1.1.1.1輸入后直到配置完成。
手動(dòng)安裝方法
centos
yum install -y socat
ubuntu或debian
apt-get updateapt-get install -y socat
socat的使用
1、轉(zhuǎn)發(fā)TCP
nohup socat TCP4-LISTEN:30000,reuseaddr,fork TCP4:1.1.1.1:30000 >> socat.log 2>&1 &
說(shuō)明:
TCP4-LISTEN:30000監(jiān)聽(tīng)ipv4的30000TCP端口。30000改成你自己需要轉(zhuǎn)發(fā)的端口
fork TCP4:1.1.1.1:30000轉(zhuǎn)發(fā)到1.1.1.1的30000端口,根據(jù)需求修改自行修改ip和端口
推薦使用nohup后臺(tái)運(yùn)行?;蛘遱creen等參數(shù),也可以把這個(gè)命令寫(xiě)到/etc/rc.local里面開(kāi)機(jī)啟動(dòng)啟動(dòng)。2、轉(zhuǎn)發(fā)UDP
nohup socat -T 600 UDP4-LISTEN:10000,reuseaddr,fork UDP4:1.1.1.1:10000 >> socat.log 2>&1 &
UDP和TCP同理,TCP4-LISTEN更換為UDP4-LISTEN即可。也可以直接寫(xiě)到/etc/local里面設(shè)置為開(kāi)機(jī)自動(dòng)啟動(dòng)。