Nginx實現(xiàn)UDP四層轉(zhuǎn)發(fā)的過程
一、背景
有2臺云服務(wù)器,一臺國內(nèi)的、一臺國外的,我本地網(wǎng)絡(luò)直連國外的IP上VPN速率很慢。但是由于云服務(wù)器廠商有線路優(yōu)化,國內(nèi)的服務(wù)器到國外的還挺快的,并且我本地到國內(nèi)服務(wù)器速率是OK的。那么想把這個UDP端口做下轉(zhuǎn)發(fā),這樣能加速我的上網(wǎng)速率。
說干就干。這個第一個想到很簡單的Haproxy做4層代理,配置也很快,監(jiān)聽端口配置、轉(zhuǎn)發(fā)目標端口、開放安全組即可。 但是我忽略了一個問題,找了半天發(fā)現(xiàn)Haproxy不能代理UDP流量。
別的工具又不想嘗試一遍了,所以索性選擇了常見的Nginx進行4層代理,支持TCP、也支持UDP。
二、Nginx配置4層代理
1、首先通過yum安裝的nginx,默認不存在--with-stream的模塊,需要執(zhí)行安裝命令
yum install nginx-mod-stream -y
nginx -V 輸出的是2(錯誤輸出), 如果沒有將2>&1的話,無法直接grep查找關(guān)鍵詞。所以將錯誤輸出導到標準輸出,才能進行正常的grep. 這個需要注意下。
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是否存在語法錯誤。 不存在錯誤,則nginx -s reload或者nginx啟動即可
4、檢查代理的UDP端口500和4500是否在監(jiān)聽
查看監(jiān)聽端口,500和4500正在UDP進行監(jiān)聽,同時本地的VPN工具更換下IP即可測試正常連接。同時上網(wǎng)體驗明顯更好。
ss -lnup | grep 500
三、總結(jié)
Haproxy只支持TCP的4層轉(zhuǎn)發(fā)以及7層HTTP的轉(zhuǎn)發(fā),但是不支持UDP流量轉(zhuǎn)發(fā)。 Nginx支持HTTP、TCP4層、UDP4層。同時Nginx配置我們相對熟悉,如果Haproxy搞不定的事情,我們可以借助Nginx實現(xiàn)也是沒問題的。
到此這篇關(guān)于Nginx實現(xiàn)UDP四層轉(zhuǎn)發(fā)的文章就介紹到這了,更多相關(guān)Nginx UDP四層轉(zhuǎn)發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx配置網(wǎng)頁轉(zhuǎn)發(fā)的實現(xiàn)步驟
本文主要介紹了Nginx配置網(wǎng)頁轉(zhuǎn)發(fā)的實現(xiàn)步驟,實現(xiàn)將云服務(wù)器的80端口轉(zhuǎn)發(fā)到另一臺服務(wù)器部署的網(wǎng)頁,具有一定的參考價值,感興趣的可以了解一下2024-05-05在Ubuntu系統(tǒng)上安裝Nginx服務(wù)器的簡單方法
這篇文章主要介紹了在Ubuntu系統(tǒng)上安裝Nginx服務(wù)器的簡單方法,包括打開和關(guān)閉Nginx的指令,需要的朋友可以參考下2015-08-08詳解nginx服務(wù)器綁定域名和設(shè)置根目錄的方法
這篇文章主要介紹了詳解nginx服務(wù)器綁定域名和設(shè)置根目錄的方法,nginx服務(wù)器綁定域名以及設(shè)置根目錄非常方便,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-06-06