Nginx實(shí)現(xiàn)UDP四層轉(zhuǎn)發(fā)的過(guò)程
一、背景
有2臺(tái)云服務(wù)器,一臺(tái)國(guó)內(nèi)的、一臺(tái)國(guó)外的,我本地網(wǎng)絡(luò)直連國(guó)外的IP上VPN速率很慢。但是由于云服務(wù)器廠商有線路優(yōu)化,國(guó)內(nèi)的服務(wù)器到國(guó)外的還挺快的,并且我本地到國(guó)內(nèi)服務(wù)器速率是OK的。那么想把這個(gè)UDP端口做下轉(zhuǎn)發(fā),這樣能加速我的上網(wǎng)速率。
說(shuō)干就干。這個(gè)第一個(gè)想到很簡(jiǎn)單的Haproxy做4層代理,配置也很快,監(jiān)聽(tīng)端口配置、轉(zhuǎn)發(fā)目標(biāo)端口、開(kāi)放安全組即可。 但是我忽略了一個(gè)問(wèn)題,找了半天發(fā)現(xiàn)Haproxy不能代理UDP流量。
別的工具又不想嘗試一遍了,所以索性選擇了常見(jiàn)的Nginx進(jìn)行4層代理,支持TCP、也支持UDP。
二、Nginx配置4層代理
1、首先通過(guò)yum安裝的nginx,默認(rèn)不存在--with-stream的模塊,需要執(zhí)行安裝命令
yum install nginx-mod-stream -y
nginx -V 輸出的是2(錯(cuò)誤輸出), 如果沒(méi)有將2>&1的話,無(wú)法直接grep查找關(guān)鍵詞。所以將錯(cuò)誤輸出導(dǎo)到標(biāo)準(zhǔn)輸出,才能進(jìn)行正常的grep. 這個(gè)需要注意下。
nginx -V 2>&1 | grep -w -- '--with-stream'
安裝完畢之后查看nginx的模塊列表,是否存在--with-stream:
2、修改nginx.conf配置文件如下
http { # ... HTTP 服務(wù)配置部分 } stream { server { listen 500 udp; proxy_pass vpn_500; } upstream vpn_500 { server $ip:500; } server { listen 4500 udp; proxy_pass vpn_4500; } upstream vpn_4500 { server $ip:4500; } }
3、nginx -t檢查一下nginx.conf是否存在語(yǔ)法錯(cuò)誤。 不存在錯(cuò)誤,則nginx -s reload或者nginx啟動(dòng)即可
4、檢查代理的UDP端口500和4500是否在監(jiān)聽(tīng)
查看監(jiān)聽(tīng)端口,500和4500正在UDP進(jìn)行監(jiān)聽(tīng),同時(shí)本地的VPN工具更換下IP即可測(cè)試正常連接。同時(shí)上網(wǎng)體驗(yàn)明顯更好。
ss -lnup | grep 500
三、總結(jié)
Haproxy只支持TCP的4層轉(zhuǎn)發(fā)以及7層HTTP的轉(zhuǎn)發(fā),但是不支持UDP流量轉(zhuǎn)發(fā)。 Nginx支持HTTP、TCP4層、UDP4層。同時(shí)Nginx配置我們相對(duì)熟悉,如果Haproxy搞不定的事情,我們可以借助Nginx實(shí)現(xiàn)也是沒(méi)問(wèn)題的。
到此這篇關(guān)于Nginx實(shí)現(xiàn)UDP四層轉(zhuǎn)發(fā)的文章就介紹到這了,更多相關(guān)Nginx UDP四層轉(zhuǎn)發(fā)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx配置網(wǎng)頁(yè)轉(zhuǎn)發(fā)的實(shí)現(xiàn)步驟
本文主要介紹了Nginx配置網(wǎng)頁(yè)轉(zhuǎn)發(fā)的實(shí)現(xiàn)步驟,實(shí)現(xiàn)將云服務(wù)器的80端口轉(zhuǎn)發(fā)到另一臺(tái)服務(wù)器部署的網(wǎng)頁(yè),具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05在Ubuntu系統(tǒng)上安裝Nginx服務(wù)器的簡(jiǎn)單方法
這篇文章主要介紹了在Ubuntu系統(tǒng)上安裝Nginx服務(wù)器的簡(jiǎn)單方法,包括打開(kāi)和關(guān)閉Nginx的指令,需要的朋友可以參考下2015-08-08如何配置Nginx每個(gè)進(jìn)程最多打開(kāi)的文件數(shù)量
這篇文章主要介紹了配置Nginx每個(gè)進(jìn)程最多打開(kāi)的文件數(shù)量,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06訪問(wèn)nginx顯示未找到站點(diǎn)的問(wèn)題分析及解決方案
當(dāng)我們?cè)诎惭b好nginx準(zhǔn)備訪問(wèn)80端口時(shí),突然出現(xiàn)您的請(qǐng)求在Web服務(wù)器中沒(méi)有找到對(duì)應(yīng)的站點(diǎn),所以本文給大家介紹了訪問(wèn)nginx顯示未找到站點(diǎn)的問(wèn)題分析及解決方案,需要的朋友可以參考下2024-03-03Nginx七層負(fù)載均衡之動(dòng)靜分離思路詳解
Nginx動(dòng)靜分離簡(jiǎn)單來(lái)說(shuō)就是把動(dòng)態(tài)跟靜態(tài)請(qǐng)求分開(kāi),不能理解成只是單純的把動(dòng)態(tài)頁(yè)面和靜態(tài)頁(yè)面屋里分離,這篇文章主要介紹了Nginx七層負(fù)載均衡之動(dòng)靜分離思路詳解,需要的朋友可以參考下2024-02-02Nginx中IF、AND、OR語(yǔ)句用法實(shí)例
這篇文章主要介紹了Nginx中IF、AND、OR語(yǔ)句用法實(shí)例,本文講解的是Ningx中的邏輯判斷語(yǔ)句用法,需要的朋友可以參考下2015-02-02Nginx配置proxy_pass后返回404的問(wèn)題及解決
這篇文章主要介紹了Nginx配置proxy_pass后返回404的問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06詳解nginx服務(wù)器綁定域名和設(shè)置根目錄的方法
這篇文章主要介紹了詳解nginx服務(wù)器綁定域名和設(shè)置根目錄的方法,nginx服務(wù)器綁定域名以及設(shè)置根目錄非常方便,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-06-06