لدي مشكلة في تنصيب Shadowsocks

السلام عليكم.

حاولت تنصيب خادم shadowsocks على VPS باستخدام دوكر ، لكنه لا يعمل.

هذه محتويات ملف docker-compose.yml:

version: '3'
services:
  shadowsocks:
    image: ghcr.io/shadowsocks/ssserver-rust:latest
    container_name: shadowsocks
    hostname: shadowsocks
    restart: unless-stopped
    ports:
      - "15150:8388/tcp"
      - "15150:8388/udp"
    volumes: [ './data:/etc/shadowsocks-rust' ]

volumes:
  shadowsocks_data:

وهذه محتويات ملف data/config.json

{
  "server":"xx.xx.xx.xx",
  "server_port":15150,
  "password":"**********",
  "timeout":300,
  "method":"aes-256-gcm",
  "fast_open": true
}

عند تشغيل docker-compose logs -f يظهر هذا الخطأ:

shadowsocks    | /usr/local/bin/docker-entrypoint.sh: Configuration complete; ready for start up
shadowsocks    | INFO  shadowsocks server 1.15.2 build 2022-12-24T06:43:58.643873930+00:00
shadowsocks    | ERROR servers exited with error: Address not available (os error 99)
shadowsocks    | server aborted with server exited unexpectedly

قمت مسبقا بإتاحة نفس المنفذ لكلا من tcp و udp من خلال لوحة التحكم ، ثم قمت بإتاحته أيضا من الطرفية باستخدام هاتين الخطوتين:

sudo iptables -I INPUT -m state --state NEW -p tcp --dport 15150 -j ACCEPT
sudo iptables -I INPUT -m state --state NEW -p udp --dport 15150 -j ACCEPT

ثم حفظ التغييرات باستخدام الأمر:

sudo netfilter-persistent save

والآن عند تشغيل الأمر:

sudo iptables -L --line-numbers|grep 15150

يظهر الناتج:

1    ACCEPT     udp  --  anywhere             anywhere             state NEW udp dpt:15150
2    ACCEPT     tcp  --  anywhere             anywhere             state NEW tcp dpt:15150

هل لدي مشكلة في الإعدادات؟

أتوقع المشكله ان الحاوية لا يمكنها الوصول مباشره للعنوان العام للخادم

لذلك جرب كتابه 0.0.0.0 في مِلَفّ config.json, قد تحل المشكلة
أيضا أذكرك ان Docker لا يتأثر بالجدار الناري, فهو يتجاوزه.

جزاك الله خيرا، هذا حل المشكلة، والحاوية الآن تعمل بشكل سليم

shadowsocks    | /usr/local/bin/docker-entrypoint.sh: Configuration complete; ready for start up
shadowsocks    | INFO  shadowsocks server 1.15.2 build 2022-12-24T06:43:58.643873930+00:00
shadowsocks    | INFO  shadowsocks tcp server listening on 0.0.0.0:57874, inbound address 0.0.0.0:57874

الآن نأتي للمشكلة الثانية ، وهي العميل المحلي، قمت بتثبيت تطبيق shadowsocks-qt5 وقمت بإضافة اتصال جديد وملأت البيانات بالشكل التالي ولكن الاتصال لا يعمل! (oc latency test failed )

هذا هو ملف config.json من السيرفر بعد التعديل:

{
"server":"0.0.0.0",
"server_port":57874,
"password":"***********",
"timeout":300,
"method":"aes-256-gcm",
"fast_open": true
}

هل من الممكن أن يكون المنفذ محجوب؟

أتذكر أمرا كهذا وكان ثمة نقاش في Github وقرأت أنه لا يظهر في ufw لكنه يستخدم iptables !!

إذن فليس علي تذكر أوامر iptables كل مرة وأن أحدد المنافذ فقط في ملف docker-compose صحيح ؟ :relieved:

نعم, ابحث عن تفاصيل تشغيله في بلدك, قد تحتاج بعض الخطوات الاضافية.

نعم هو يتلاعب بIptables لفتح المنافذ, لذلك فقط اختارها بCompose وسيقوم بكل شيء.