SOCKS5 是一個代理協議,它在使用TCP/IP協議通訊的前端機器和服務器機器之間扮演一個中介角色,使得內部網中的前端機器變得能夠訪問Internet網中的服務器,也可隱藏用戶的IP地址,前一陣子有朋友自己在搭建socks5服務器時因為多IP所以配置都是失敗的,今天有空試了一下留個記錄,原理我不多贅述了,這里就簡單介紹一下如果搭建使用,
這里的多IP的是基于iptables中設定對應用戶出口來實作的,
服務器環境
服務器使用的是騰訊云服務器,安裝了 CentOS7.6 的版本,配置了雙IP(見下圖),關于配置多IP程序這里不說明了,我這里將兩個IP系結在了同一個網卡上,主IP系結在eth0網卡上,輔助IP系結在了虛擬網卡eth0:1上,在配置好IP后測驗一下這些IP是否都是可用(都是通的),同時安全組開放1080埠,

網卡資訊

安裝SS5
安裝ss5需要部分依賴等,我這里把bash列出來了,切換到root身份后直接復制粘貼進去即可,
yum install -y gcc openldap-devel pam-devel openssl-devel wget http://jaist.dl.sourceforge.net/project/ss5/ss5/3.8.9-8/ss5-3.8.9-8.tar.gz tar -vzx -f ss5-3.8.9-8.tar.gz cd ss5-3.8.9/ ./configure make make install chmod a+x /etc/init.d/ss5
安裝完畢后,可以正常啟動,如果發現無法啟動或報錯請根據日志解決,
service ss5 restart

可以成功啟動后,簡單修改下組態檔,使其需要進行身份驗證,如果提示vim不存在則可以使用vi編輯器,或使用“yum install -y vim”安裝后再執行,
vim /etc/opt/ss5/ss5.conf
根據下圖修改,找到對應行將“#”洗掉,同時在“auth”一行末尾Authentication列將“-”修改為“u”,“permit”一行中的Auth列修改“-”為“u”,修改完畢后保存,

修改完組態檔后先不要急著重啟,我們去添加一下ss5的用戶組態檔,我這里因為有兩個IP所以配置了兩個賬號,每一行配置一個用戶,格式:用戶+空格+密碼,
vim /etc/opt/ss5/ss5.passwd

設定完畢后,嘗試重啟一下ss5服務,
service ss5 restart

這里提示了“OK”,那么ss5服務的配置基本上是正確了,這里我使用了QQ自帶的網路測驗,測驗了一下兩個IP都是通的,如果這里測驗沒有問題,那么ss5的配置就可以告一段落了,如果提示“無法連接到代理服務器”則表示配置還是有問題,可以嘗試重啟ss5服務,檢查防火墻是否攔截,selinux攔截,安全組未開放1080埠等情況,

配置iptables
配置完ss5服務后如果使用不同的IP,代理后結果還是顯示主IP,這里需要根據用戶去限制出口IP,首先添加用戶,這里的用戶和“/etc/opt/ss5/ss5.passwd”中添加的用戶需要對應,添加完后查看用戶對應的uid,下一步需要用到,
useradd tom1 -p tom useradd tom2 -p tom
id tom1
id tom2

可以看到用戶的uid分別是1000和1002,然后我們對限制添加到iptables中,其中我標記紅色的地方為對應的用戶id,標注黃色底色的IP即為需要對應的出口IP,騰訊云中系結的內網IP出去即為對應的公網IP,網卡中系結的是騰訊云的內網IP,所以這里系結了對應的內網IP(對應IP見第一張圖),如果使用“ifconfig”查看到網卡系結為公網IP則使用對應的公網IP,所以這里需要特別注意,根據自己情況替換對應的uid和出口IP,不能照搬,
#配置用戶tom1
iptables -t mangle -A OUTPUT -m owner --uid-owner 1000 -j MARK --set-mark 1000 iptables -t nat -A POSTROUTING -m mark --mark 1000 -j SNAT --to-source 172.17.0.8
#配置用戶tom2 iptables -t mangle -A OUTPUT -m owner --uid-owner 1001 -j MARK --set-mark 1001 iptables -t nat -A POSTROUTING -m mark --mark 1001 -j SNAT --to-source 172.17.0.17
設定完后,查看一下配置是否已經寫入,我這里紅色方框處的即為剛才的配置,
iptables -nvL -t nat
iptables -nvL -t mangle

配置好iptables后需要再對ss5添加一下對應的用戶,設定對應用戶和出口IP,請務必與上方iptables中對應uid和ip處保持一致,啟動成功則配置完畢,
service ss5 stop #由于服務啟動無法寫入,這里需要關閉 ss5 -u tom1 -b 172.17.0.8 ss5 -u tom2 -b 172.17.0.17 service ss5 start #關閉后再次啟動

到這里配置已經結束了,我再使用qq進行了測驗,提示連接成功,如果這里提示連接失敗,則表示配置還是有問題的,

最后在瀏覽器中測驗,我這里使用了傲游瀏覽器,它自帶了socks5身份驗證,

教程中的程序都是我親自測驗過可以成功的,新手配置可能還是會有一點點困難,多嘗試即可,不同情況下配置可能有些不同但是基本思路是一致的,
請不要嘗試使用我這里的代理配置,在我寫完教程后服務器資源就釋放和回滾了 :)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/195874.html
標籤:其他
