在 Ubuntu 用 dante 架設 sock5 代理 讓瀏覽器在特定網址跳轉IP
第二篇是代理伺服器,代理再搭配 Chrome 的插件 SwitchyOmega 就可以完成組合技,只在特定網只才跳轉IP
安裝
更新並安裝
sudo apt-get update && sudo apt install dante-server -y
然後我們先備份一下最初的原始設定範例
sudo cp -p /etc/danted.conf /etc/danted.orig.conf
更改設定
再來我們修改設定值
sudo nano /etc/danted.conf
輸入下面的基本範例
logoutput: /var/log/danted.log
internal: 0.0.0.0 port = 1080
external: wg1
method: none
user.notprivileged: nobody
client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect disconnect error
}
pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
protocol: tcp udp
log: connect disconnect error
}
輸入完畢按下 CTRL+S 存檔 CTRL+X 離開
啟動服務
設置好之後就可以啟動服務了
sudo systemctl start danted
如果有修改檔案需要重啟服務可以用以下的方式
sudo systemctl daemon-reload && sudo systemctl restart danted
啟動完畢之後檢查一下服務狀態是否在 runing 狀態
sudo systemctl status danted --no-pager -n 10
然後就可以測試一下 sock 代理是否可用了
curl --socks5 localhost:1080 http://ipinfo.io/ip; echo
最後確認一下經由外部IP的連接
curl --socks5 "$(hostname -I|cut -f1 -d' '):1080" http://ipinfo.io/ip; echo
這裡有成功顯示跳轉的IP就是完成了
設置開機時自動啟動
原則上加入 systemctl 就行了
sudo systemctl enable danted
從其他電腦測試
這邊選用 powershell 指令當範例,能連上就是可以用了
curl.exe --socks5 192.168.3.89:1080 http://ipinfo.io/ip
指令中的 IP: 192.168.3.89 記得改成你自己的機器的 IP
至此就完成摟~
進階:: 自動啟動 danted 時讓他等待 wg1 連接完成
更進階的讓 danted 自動啟動時會先等待 wg1 連線成功才啟動的方式
機器的性能不要太差不用特別設定不會卡到,有問題在設定也行。具體表現的情況就是重啟後 danted 啟動時不到虛擬網卡 wg1 而失敗
首先編輯一下設定
sudo nano /lib/systemd/system/danted.service
然後找到 After=network.target
把它取代成下面這樣
After=network.target wg-quick@wg1.service
Requires=wg-quick@wg1.service
這表示自動啟動 danted 時會順帶啟動 wg1 並且等待他完成
然後存檔離開,並重啟服務 (需要先關閉 wg1)
sudo wg-quick down wg1 && sudo systemctl daemon-reload && sudo systemctl restart danted
最後確認一下經由外部IP的連接
curl --socks5 "$(hostname -I|cut -f1 -d' '):1080" http://ipinfo.io/ip; echo
沒問題的話就完成了
重新啟動可以輸入 sudo reboot
重啟一下測試成果
進階2:: 向區網廣播自身的 hostname
由於IP可能會變動,或是不好記住可以多裝一個套件 avahi-daemon 廣播主機名稱
這樣一來下一步設定代理伺服器的時候就不用記住 IP 了,直接設置這台主機名即可
不需要什麼設定,就是安裝並設定開機啟動而已
sudo apt install avahi-daemon -y
sudo systemctl enable avahi-daemon
sudo systemctl start avahi-daemon
再來就可以不用輸入IP而是輸入本機名稱即可,不知道名稱是什麼可以打指令 hostname 即可以查詢
進階3:: 簡易管理批次檔案
自己寫了兩個方便切換的,沒特別考量什麼只是方便能切隨意地的東西而已
後來發現 sing-box 這個神器,好像即使像這開代理也不用跳轉本機流量的樣子,管理上也可以讓 wg 同時運行 server / client 的樣子,詳細還沒測
proxy-disable.sh
#!/bin/bash
set -e
DISABLE_BOOT=0
for arg in "$@"; do
case "$arg" in
-b|--disable-boot)
DISABLE_BOOT=1
;;
esac
done
sudo systemctl stop danted
if [[ $DISABLE_BOOT -eq 1 ]]; then
sudo systemctl disable danted
fi
if ip link show wg0 &>/dev/null; then
sudo wg-quick down wg0
fi
if ip link show wg1 &>/dev/null; then
sudo wg-quick down wg1
fi
if [[ $DISABLE_BOOT -eq 1 ]]; then
sudo systemctl disable wg-quick@wg1
fi
echo -e "🌐 外部 IPv4:\033[1;33m$(curl -4 -s ifconfig.me)\033[0m"
proxy-enable.sh
#!/bin/bash
set -e
ENABLE_BOOT=0
for arg in "$@"; do
case "$arg" in
-b|--enable-boot)
ENABLE_BOOT=1
;;
esac
done
ip link show wg0 &>/dev/null && sudo wg-quick down wg0
ip link show wg1 &>/dev/null || sudo wg-quick up wg1
sudo systemctl daemon-reload
sudo systemctl restart danted
if [[ $ENABLE_BOOT -eq 1 ]]; then
sudo systemctl enable wg-quick@wg1
sudo systemctl enable danted
fi
sleep 1
proxy="$(hostname -I | cut -f1 -d' '):1080"
echo -ne "SOCKS5 代理:\033[1;90m$proxy\033[0m → IP:"
echo -ne "\033[38;5;39m"
curl --socks5 "$proxy" -s http://ipinfo.io/ip
echo -e "\033[0m"