OpenVPN үчүн SOCKS5 прокси: TCP туннелиби же колдонмолорду проксилөөбү?
Прокси агымды өткөрөт, датаграмманы эмес. socks-proxy артындагы TCP туннелин redsocks кайра багыттоосу менен салыштырып, ар бир долбоор кайда биринчи бузуларын көрүңүз.
Прокси аркылуу гана чыгууга уруксат берген тармактар — иштеп турган профиль күтүлбөгөн жерден өлгөн жер. Прокси дареги ошол ийгиликсиздиктеги эң кызыксыз өзгөрмө. Баарын прокси өткөрө турган трафиктин формасы чечет, анткени бул проксилер байт агымын жөнөтөт, ал эми UDP туннели андай эмес. Бул эки архитектура калтырат жана алар ар башка жерлерде бузулат.
Долбоорду бир чектөө чечет
SOCKS5 чындыгында UDP бирикме режимин аныктайт. Бирок OpenVPN кардарынын прокси колдоосу агымдардын айланасында курулган: socks-proxy TCP профилдери үчүн документтелген, ал эми HTTP CONNECT проксинин датаграммаларга жолу такыр жок. Документтин бир сабы конфигурация файлына тийишибизден мурун архитектураны чечет.
Демек суроо кайсы проксини тандоо эмес. Суроо туннел агымга айланабы, же датаграмма бойдон калып, проксилөөнү башка бир нерсе сиңирип алабы.
А варианты: туннелди агымга айландыруу
Бул үчүн TCP угуучусу бар сервер жана проксини атаган кардар профили керек. Эки бөлүк тең милдеттүү, ал эми адамдар унуткан нерсе — сервер тарабы:
proto tcp-client
remote vpn.example.net 443
socks-proxy 127.0.0.1 1080Акыркы сапты http-proxy proxy.internal 8080 менен алмаштырыңыз, прокси HTTP сүйлөгөндө, жана талап кылса, эсептик дайындар файлын кошуңуз. Прокси VPN портуңузга CONNECT аткарууга даяр болушу керек, ал эми сервер TCP боюнча жооп бериши керек; UDP гана угуучу бул аракетти этибарга албайт. 443 тандоо практикалык кадам, анткени көптөгөн чектелген тармактар ушуга жана аз нерсеге уруксат берет.
Баасы — TCPнин TCP үстүнө катмарланышы. Бир жоголгон сырткы сегмент ошол байланышты бөлүшкөн ар бир ички агымды токтотот, ошондуктан адатта көз карандысыз боло турган калыбына келтирүү жалпы болуп калат. Орнотуу да узакка созулат, ал эми туруксуз сырткы жол жай эмес, туруксуз туннелге айланат.
Б варианты: туннелди жалгыз калтыруу
Туннель UDPде калышы керек болгондо, туннель бир нерсени конфигурациялаган жер эмес. Анын ордуна колдонмолордон чыккан TCP жергиликтүү SOCKS угуучусуна кайра багытталат, ал эми колдонмолор проксинин бар экенин эч качан билишпейт. Linuxте бул адатта redsocks жана nat таблицасындагы NAT REDIRECT эрежеси.
Дагы TCP гана. privoxy сыяктуу HTTP гана прокси каалаган протоколдорду өткөрө албайт, жана бул долбоор колдонмолорго датаграмма колдоосун да кошпойт.
Ар бир колдонмого прокси жөнүндө түз айтуу, программалык камсыздоо колдогон жерде адатта жакшыраак. Аны текшерүү оңой жана ал чындап көрө алган жерде ийгиликсиз болот.
Ар бир вариант кайда ийгиликсиз болот
А варианты серверде TCP угуучусу жок болгондо, прокси CONNECT максатынан баш тартканда, же сырткы агым туннелге керектүү деңгээлден төмөн чектелгенде ийгиликсиз болот. Биринчи экөө прокси журналында жазуу калтырат; үчүнчүсү орноп, анан туура эмес сезилген байланыш калтырат. Профилди оңдоодон мурун ошол журналды окуңуз, анткени ал уруксат маселесин сыйымдуулук маселесинен ажыратат. Бүткөн CONNECT тергөөнү туннелдин ичине жылдырат.
Б варианты датаграммаларды талап кылган нерселердин баары үчүн, прокси түшүнбөгөн протоколдор үчүн жана кайра багыттоо эрежеси бар, бирок маршруттоо трафикти анын жанынан жиберген хосттордо үнсүз ийгиликсиз болот.
Эки варианттын бири да түзмөк талабын өзгөртпөйт. Пакеттерге дагы эле өзөк маршрутташы үчүн TUN же TAP түйүнү керек, ошондуктан процесс дагы эле /dev/net/tun уруксатын талап кылат. Каптоо ошол түйүн ачылгандан кийин эмне болорун өзгөртөт, анын керекпи-жокпу эмес.
Кайсы жолду курганыңызды далилдеңиз
Науа сүрөтчөсүнө эмес, сокеттерге караңыз. VPN процесси прокси дарегине орнотулган байланышты кармап турушу керек, ал эми прокси андан суралган максатты журналга жазышы керек эле:
ss -tnp | grep openvpnАнан туннель гана тейлей алган багытка жана туннелдин чечүүчүсү гана жооп бере алган атка бет алыңыз. Өлгөн туннел менен бүткөн прокси байланышы адатта алыскы тарап профилиңизде аталган транспортту эч качан сунуштабаганын билдирет.
Транспортту жана кабыл алуучу проксини туруктуу жерге жазып коюңуз. Ошол эле профиль башка тармакта ийгиликсиз болгондо, бул жазуу проксини секунддар ичинде жокко чыгарат же ырастайт.