Nginx實(shí)現(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ā)目標(biāo)端口、開放安全組即可。 但是我忽略了一個問題,找了半天發(fā)現(xiàn)Haproxy不能代理UDP流量。
別的工具又不想嘗試一遍了,所以索性選擇了常見的Nginx進(jìn)行4層代理,支持TCP、也支持UDP。

二、Nginx配置4層代理
1、首先通過yum安裝的nginx,默認(rèn)不存在--with-stream的模塊,需要執(zhí)行安裝命令
yum install nginx-mod-stream -y
nginx -V 輸出的是2(錯誤輸出), 如果沒有將2>&1的話,無法直接grep查找關(guān)鍵詞。所以將錯誤輸出導(dǎo)到標(biāo)準(zhǔn)輸出,才能進(jì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進(jìn)行監(jiān)聽,同時本地的VPN工具更換下IP即可測試正常連接。同時上網(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層。同時Nginx配置我們相對熟悉,如果Haproxy搞不定的事情,我們可以借助Nginx實(shí)現(xiàn)也是沒問題的。
到此這篇關(guān)于Nginx實(shí)現(xiàn)UDP四層轉(zhuǎn)發(fā)的文章就介紹到這了,更多相關(guān)Nginx UDP四層轉(zhuǎn)發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Nginx服務(wù)器基礎(chǔ)的安全配置與一些安全使用提示
這篇文章主要介紹了Nginx服務(wù)器基礎(chǔ)的安全配置與一些安全使用提示,文中舉了一些典型的Nginx與PHP的環(huán)境用例,需要的朋友可以參考下2016-01-01
Nginx+FastDFS搭建圖片服務(wù)器的方法實(shí)現(xiàn)
這篇文章主要介紹了Nginx+FastDFS搭建圖片服務(wù)器的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
在Ubuntu系統(tǒng)上安裝Nginx服務(wù)器的簡單方法
這篇文章主要介紹了在Ubuntu系統(tǒng)上安裝Nginx服務(wù)器的簡單方法,包括打開和關(guān)閉Nginx的指令,需要的朋友可以參考下2015-08-08
nginx反向代理失效前端無法獲取后端的數(shù)據(jù)解決辦法
Nginx服務(wù)器的反向代理服務(wù)是其最常用的重要功能,由反向代理服務(wù)也可以衍生出很多與此相關(guān)的Nginx服務(wù)器重要功能,下面這篇文章主要給大家介紹了關(guān)于nginx反向代理失效前端無法獲取后端的數(shù)據(jù)解決的相關(guān)資料,需要的朋友可以參考下2023-12-12

