Iptables เปลี่ยนเส้นทางไปยัง shadowsocks
ฉันมี Ubuntu 20.04 vps พร้อมเซิร์ฟเวอร์ shadow-socks
ฉันยังมี ubuntu 20.04 บนพีซีของฉัน โดยมีไคลเอนต์ shadow-socks ทำงานอยู่
กำลังใช้ ถุงเท้าเงา libev รุ่น.
เป้าหมายคือเปลี่ยนเส้นทางคำขอทั้งหมดไปที่ 127.0.0.1:1080 ซึ่งพร็อกซีไคลเอ็นต์ทำงานอยู่
ฉันทำตามคำแนะนำจาก นี้ คำถามและ นี้ บล็อกที่คำตอบชี้ไป
ยังเห็น นี้ ถาม
อย่างไรก็ตาม ไม่มีอะไรที่ทำให้มันได้ผลสำหรับฉัน
ขั้นตอนที่ฉันทำ
I. ฉันสร้างผู้ดูแลระบบสำหรับเรียกใช้ไคลเอนต์ถุงเท้าเงาเท่านั้น
ครั้งที่สอง ฉันสร้างหน่วย systemd เพื่อเริ่มไคลเอนต์เมื่อบู๊ตจากผู้ใช้แยกต่างหาก เนื้อหาของไฟล์แสดงรายการด้านล่าง:
[หน่วย]
Description=SahdowSocks
หลังจาก = network.target
After=network-online.target
[บริการ]
ExecStart=ss-local -c /etc/shadowsocks-client/config.json
รีสตาร์ท = เมื่อล้มเหลว
ผู้ใช้ = ถุงเท้า_ผู้ใช้
Group=socks_user
[ติดตั้ง]
WantedBy=multi-user.target
ณ จุดนี้ หากฉันตั้งค่า 127.0.0.1:1080 ในเบราว์เซอร์ของฉัน (firefox) เป็นพร็อกซี socks5 - ใช้งานได้ดี
สาม. จากนั้นฉันก็สร้างกฎ iptables ตามลิงค์ด้านบน
sudo iptables -t nat -A OUTPUT -p tcp -m เจ้าของ ! --uid-เจ้าของsocks_user --dport 80 -j REDIRECT --to-port 1080
sudo iptables -t nat -A OUTPUT -p tcp -m เจ้าของ ! --uid-เจ้าของsocks_user --dport 443 -j REDIRECT --to-port 1080
หลังจากนั้น ฉันยังคงสามารถใช้เบราว์เซอร์ได้หากเชื่อมต่อโดยตรงกับพร็อกซีผ่านการตั้งค่า แต่หลังจากเปลี่ยนเป็นไม่มีพร็อกซี/พร็อกซีระบบ - การรับคำขอหมดเวลา แอปอื่นๆ ทั้งหมดก็ไม่มีการเชื่อมต่อเช่นกัน
*เพียงแค่พูดถึง ถ้าฉันทำการ ping ไปที่ 1.1.1.1 มันจะกลับมาปกติ
* ถ้าฉัน wget http://someurl มันจะจบลงโดยไม่มีผลลัพธ์
ดังนั้นฉันคิดว่าฉันได้รับ reroute loop (?) แต่ไม่เข้าใจว่าทำไม