Redsocks loopback'da tinglaydi, lekin VPN trafigi hech qachon yetib kelmaydi
Faqat loopback'ga bog'langan tinglovchi tun0'dan yo'naltirilgan trafikni hech qachon ko'rmaydi. Yo'naltirish nishonini va socket bog'lanishini o'qing, bog'lanishni tuzating, so'ng haqiqiy mijozdan sinab ko'ring.
Tunnel ko'tariladi, mijoz gateway'ga ping yubora oladi, lekin proksi yo'lidan o'tadigan har bir veb so'rov o'ladi. redsocks jarayoni ishlayapti va uning porti tinglayapti, shuning uchun xizmat gateway'ning o'zidan sog'lom ko'rinadi. Muvaffaqiyatsiz bo'ladigan narsa - yetkazib berish bosqichi: tunneldan yo'naltirilgan paket siz ishga tushirgan socket'ga tushmaydi. Bog'lanish manzili va yo'naltirish nishoni mos kelishi kerak va odatda ulardan faqat bittasi tekshiriladi.
Yo'naltirilgan paket aslida qayerga tushadi
Gateway'dagi shaffof proksi kiruvchi ulanishning manzilini mahalliy portga qayta yozish uchun PREROUTING'dagi nat jadvalida REDIRECT'dan foydalanadi. Qayta yozilgan manzil paket kelgan interfeysdan ko'rinadigan mahalliy manzil, boshqa joyda ishga tushirilgan jarayonning loopback manzili emas. Faqat 127.0.0.1'ga bog'langan tinglovchi allaqachon xostda mahalliy bo'lgan ulanishlarni qabul qiladi va tunnel trafigi muvaffaqiyatsiz bo'lganda ishlashda davom etadigan holat aynan shu. Mijozning o'z loopback'i uchinchi manzil va hech qachon gateway qoidasining nishoni emas.
Shuning uchun yuqori darajadagi hisob ma'lumotlariga tegishdan oldin ikki faktni aniqlang: qoida qaysi mahalliy manzilga qayta yozadi va proksi socket qaysi manzilga bog'langan.
Tinglovchi va yo'naltirish qoidasini birga o'qing
Socket jadvalini va nat qoidalarini bitta o'tishda chop eting, chunki hech kimga tegishli bo'lmagan portga ishora qiluvchi qoida noto'g'ri manzilga ishora qiluvchi qoida bilan bir xil ko'rinadi. sudo ss -ltnp | grep redsocks bog'lanish manzili va egalik qiluvchi jarayonni ko'rsatadi. sudo iptables -t nat -S PREROUTING REDIRECT nishonini ko'rsatadi, sudo iptables -t nat -L PREROUTING -v -n esa unga biror narsa mos kelganmi yoki yo'qmi ko'rsatadi.
REDSOCKS nomli foydalanuvchi zanjiriga sakrash, agar bu zanjir mavjud bo'lmasa va ko'zda tutilgan istisnolar hamda REDIRECT amalini olib yurmasa, hech narsaga erishmaydi. Nom ishni bajaradi deb taxmin qilish o'rniga, u sakraydigan zanjirni sudo iptables -t nat -S REDSOCKS bilan o'qing.
Keyin ikki qiymatni solishtiring. Agar qoida 12345 portidagi gateway manziliga yo'naltirsa va tinglovchi 127.0.0.1:12345 deb xabar bersa, bu nomuvofiqlik nosozlikni qo'shimcha diagnostikasiz tushuntiradi.
Tor bog'lang, so'ng unga nima yetib borishi mumkinligini cheklang
Yuqori darajadagi namuna konfiguratsiyasi yaxshi sabab bilan tinglovchini loopback'ga qo'yadi: shaffof proksi unga yetib bora oladigan har kim nomidan ulanishlarni qabul qiladi. Bog'lanishni 0.0.0.0'ga o'zgartirish yetkazib berishni tuzatadi va ayni paytda portni har bir interfeysda ochadi, bu xavfsizlik o'zgarishi, neytral ta'mirlash emas. Yo'naltirish nishonga olgan aniq mahalliy manzilga bog'lanishni afzal ko'ring va ishonchsiz interfeyslarda portni yopiq tuting. Kengroq bog'lanish muqarrar bo'lsa, faqat tunnel manba diapazoni va gateway'ning o'z mahalliy trafigiga ruxsat beruvchi xost xavfsizlik devori qoidasini qo'shing.
Ommaviy interfeysda portni ochish yo'naltirilgan VPN trafigi uchun hech qachon talab qilinmaydi, chunki qayta yozgandan keyin ulanish mahalliy ravishda tugaydi. Mahalliy yo'naltirish ishlashi uchun proksini internetga ochmang.
Buni mijozdan yangi ulanish bilan isbotlang
Gateway'dagi shell'dan emas, haqiqiy VPN mijozidan yangi TCP ulanishi bilan sinab ko'ring. Mijozdagi curl -sS -o /dev/null -w '%{http_code}\n' http://example.com yo'naltirilgan yo'lni boshidan oxirigacha mashq qiladi.
Keyin ishonchsiz tarmoqdan tinglovchiga to'g'ridan-to'g'ri ulanish hali ham rad etilishini va proksining o'z yuqori ulanishi xuddi shu qoida bilan qayta ushlanmasligini tasdiqlang. Rekursiv ushlash o'ziga ulanadigan va hech qachon so'rovni tugatmaydigan proksi sifatida namoyon bo'ladi. Proksining manzilini istisnolar to'plamiga qo'shing yoki uning chiquvchi paketlarini belgilang, shunda zanjir ularni o'tkazib yuboradi.
Nihoyat, bu yo'l nimani qamrab olmasligini esda tuting. Oddiy redsocks TCP yo'naltirishi UDP, QUIC yoki DNS'ni SOCKS trafigiga aylantirmaydi va xususiy manzillar odatda aniq istisnolarni talab qiladi. Muvaffaqiyatli mahalliy sinov faqat hech qachon muammo bo'lmagan loopback yo'lini isbotlaydi.