一、簡介
這里總結(jié)整理了之前使用Java寫的端口轉(zhuǎn)發(fā)、Http代理、Sock5代理程序,放在同一個工程中,方便使用。
開發(fā)語言:Java
開發(fā)框架:Netty
1.功能
端口轉(zhuǎn)發(fā):
HTTP代理服務(wù)器,支持賬號密碼認(rèn)證
Sock5代理服務(wù)器,支持賬號密碼認(rèn)證
支持連接后端時直接連接或采用代理連接,也后端代理連接認(rèn)證
2.參數(shù)配置
修改config.yml
configs:
#端口轉(zhuǎn)發(fā)demo
- enable: true
serverType: forward
serverPort: 13306
remoteHost: 127.0.0.1
remotePort: 3306
#http/https代理demo
- enable: true
serverType: http
serverPort: 3128
#sock5代理demo,需要認(rèn)證
- enable: true
serverType: sock5
serverPort: 1080
needLogin: true
username: "test"
password: "123456"
比如上面的配置,就是開啟了一個端口轉(zhuǎn)發(fā),一個Http代理和一個Sock5代理
全量配置參考,config_full.yml:
#此文件包含所有能配置的屬性,只用來查看使用,程序使用的是config.yml中的配置
configs:
#規(guī)則是否生效,true或者false,默認(rèn)為true
- enable: true
#類型,forward或http或sock5,表示端口轉(zhuǎn)發(fā)或http代理或sock5代理,默認(rèn)為forward
serverType: forward
#本地監(jiān)聽的端口號
serverPort: 13306
#轉(zhuǎn)發(fā)的目標(biāo)IP,serverType為forward時此參數(shù)才有意義
remoteHost: 127.0.0.1
#轉(zhuǎn)發(fā)的目標(biāo)端口,serverType為forward時此參數(shù)才有意義
remotePort: 3306
#是否需要認(rèn)證,serverType為http和sock5時此參數(shù)才有意義
needLogin: true
#認(rèn)證賬號,serverType為http和sock5時此參數(shù)才有意義
username: "user"
#認(rèn)證密碼,serverType為http和sock5時此參數(shù)才有意義
password: "pwd"
#是否需要通過后端代理連接遠(yuǎn)程服務(wù)器,會覆蓋全局的配置
proxyNeed: false
#如果需要后端口代理,代理連接類型,http或socks5,會覆蓋全局的配置
proxyType: http
#如果需要后端口代理,代理連接IP,會覆蓋全局的配置
proxyIp: 127.0.0.1
#如果需要后端口代理,代理連接Port,會覆蓋全局的配置
proxyPort: 1080
#如果需要后端口代理,代理連接用戶名,通過是否為空來決定需不需要認(rèn)證,會覆蓋全局的配置
proxyUsername: ""
#如果需要后端口代理,代理連接密碼,通過是否為空來決定需不需要認(rèn)證,會覆蓋全局的配置
proxyPassword: ""
#===后端代理全局配置,會對所有的configs有效,以下配置都有默認(rèn)值,如果沒配置,則采用默認(rèn)===#
global:
#是否需要通過后端代理連接遠(yuǎn)程服務(wù)器
proxyNeed: false
#代理連接類型,http或socks5
proxyType: http
#代理連接IP
proxyIp: 127.0.0.1
#代理連接Port
proxyPort: 1080
#代理連接用戶名,通過是否為空來決定需不需要認(rèn)證
proxyUsername: ""
#代理連接密碼,通過是否為空來決定需不需要認(rèn)證
proxyPassword: ""
3.程序下載
程度可直接下載已編繹好的文件(要求JDK1.8環(huán)境下使用)
https://gitee.com/jxlhljh/nettyProxyServer/raw/master/release/nettyProxyServer.zip
https://github.com/jxlhljh/nettyProxyServer/blob/master/release/nettyProxyServer.zip
也可以采用源碼編繹
git clone https://github.com/jxlhljh/nettyProxyServer.git
或
git clone https://gitee.com/jxlhljh/nettyProxyServer.git
mvn clean package
4.程序啟動
解壓程序文章來源:http://www.zghlxwxcb.cn/news/detail-822681.html
unzip nettyProxyServer.zip
$ ls -hl
total 99K
-rw-r--r-- 1 liujh 197121 342 Jan 20 17:06 config.yml
drwxr-xr-x 1 liujh 197121 0 Jan 20 18:25 lib/
-rw-r--r-- 1 liujh 197121 71K Jan 20 14:50 nettyProxyServer.jar
-rw-r--r-- 1 liujh 197121 137 Jan 20 20:59 start.bat
-rwxr-xr-x 1 liujh 197121 226 Jan 20 17:03 start.sh
啟動程序文章來源地址http://www.zghlxwxcb.cn/news/detail-822681.html
#window
./start.bat
#Linux
./start.sh
5.源碼
git clone https://github.com/jxlhljh/nettyProxyServer.git
git clone https://gitee.com/jxlhljh/nettyProxyServer.git
到了這里,關(guān)于Java使用Netty實現(xiàn)端口轉(zhuǎn)發(fā)&Http代理&Sock5代理服務(wù)器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!