Dim swits i eithrio’r ap hwn: rhowch ei ffynhonnell ei hun i’r broses
Mae llwybrau’n cydweddu cyfeiriadau, nid enwau prosesau. Rhowch ffynhonnell a thabl eu hunain i’r rhaglen a eithrir, neu symudwch y penderfyniad i’r llwybrydd lle mae hynny’n onest.
Dylai un rhaglen ddefnyddio’r cysylltiad cyffredin tra bo popeth arall yn aros ar y tiwnel, ac nid oes gan y cleient swits ar gyfer hynny. Nid oes dewislen gudd i’w chael chwaith. Dewisir llwybr o feysydd y tu mewn i’r pecyn, ac mae’r pecyn yn cario cyfeiriadau a phorthladdoedd yn hytrach nag unfathiaeth y broses a’i creodd, felly rhaid mynegi eithriad yn un o’r meysydd hynny. Cerddwch drwy becyn unwaith a bydd yr opsiynau sydd ar gael yn peidio bod yn ddirgel.
Pam na all y cleient ei gynnig
Mae llwybrau cyrchfan yn cymharu cyfeiriad y gyrchfan â rhagddodiaid ac yn cadw’r cyfateb hiraf. Ar yr eiliad honno mae pob pecyn yn edrych yr un fath, beth bynnag a’i cynhyrchodd. Mae llwybrau polisi ffynhonnell yn lledu’r gymhariaeth i gyfeiriad y ffynhonnell, a dyma’r bachyn y mae pob ateb ymarferol yn ei ddefnyddio: newidiwch y ffynhonnell, a daw tabl arall yn gymwys.
Nid yw porthladdoedd yn helpu. Byddai eithriad yn ôl porthladd yn gorfod cael ei werthuso cyn chwilio’r gyrchfan, ac nid oes rhan i’r porthladd yn y penderfyniad hwnnw. Mae unrhyw beth a hysbysebir fel eithriad ar sail porthladd mewn gwirionedd yn eithrio yn ôl rhyw faes arall ac yn ei ddisgrifio’n llac.
Mae llwybrau go iawn fesul ap yn bod lle mae’r platfform wedi ychwanegu peirianwaith ar ei gyfer, fel galwadau hidlo ar Windows neu fondio gwasanaeth VPN ar Android. Nid yw achos desktop OpenVPN yn dod ag unrhyw beth o hynny, ac nid oes unrhyw faner ffurfweddu yn ei ddyfeisio.
Linux: nodwch y broses, yna llwybrwch y nod
Mae’r dull glanaf yn clymu’r penderfyniad wrth y broses sy’n berchen ar y soced. Mae cyfateb owner yn gweithio ar gyfer traffig a gynhyrchir yn lleol yn y gadwyn OUTPUT, felly gall nod a gymhwysir yno ddewis tabl ar wahân:
iptables -t mangle -A OUTPUT -m owner --uid-owner 1001 -j MARK --set-mark 0x1
ip rule add fwmark 0x1 table 200
ip route add 192.168.1.0/24 dev eth0 src 192.168.1.0 table 200
ip route add default via 192.168.1.1 dev eth0 table 200
Yna mae pecynnau gan ddefnyddiwr 1001 yn ymgynghori â thabl 200 ac yn gadael drwy’r porth cyffredin, tra bo’r prif dabl yn dal i anfon popeth arall i’r tiwnel. Dim ond ar becynnau a gynhyrchir yn lleol y mae cyfateb owner yn berthnasol, sef yn union y traffig sy’n bwysig yma, ac ni all ddosbarthu pecynnau a anfonir ymlaen i westeiwr arall. Gwiriwch gyda’r offer yn hytrach na’r bwriad: mae ss -tnp yn dangos cyfeiriad lleol a phroses berchen y cysylltiadau sefydledig, ac mae ip route get 1.1.1.1 mark 0x1 yn dangos pa dabl y mae’r nod yn ei ddewis.
Yr ateb mwy cadarn i raglen hunangynhwysol yw gofod enw rhwydwaith, oherwydd mae pob soced a greir y tu mewn iddo wedi’i rwymo iddo drwy ei adeiladwaith, felly mae prosesau cynorthwyol a chysylltiadau plentyn yn etifeddu’r ymddygiad heb eu dosbarthu o gwbl. Y gost yw plymwaith: pâr veth, cyfeiriad ar bob pen, a llwybr diofyn y tu mewn i’r gofod enw sy’n pwyntio’n ôl at y gwesteiwr.
ip netns add novpn
ip link add veth-host type veth peer name veth-ns
ip link set veth-ns netns novpn
ip addr add 10.200.0.1/24 dev veth-host
ip netns exec novpn ip addr add 10.200.0.2/24 dev veth-ns
ip netns exec novpn ip route add default via 10.200.0.1
Windows: y gyrchfan sy’n penderfynu o hyd
Mae Windows yn dewis y rhyngwyneb allan o’r gyrchfan, felly rhaid i raglen sy’n dymuno llwybr gwahanol newid rhywbeth y mae’r pentwr yn ymgynghori ag ef cyn y dewis hwnnw. Mae ForceBindIP yn gorchuddio’r hanner cyntaf: mae’n cychwyn rhaglen gyda’i socedi eisoes wedi’u rhwymo at gyfeiriad lleol a enwch. Nid yw hynny ar ei ben ei hun yn newid pa ryngwyneb y mae’r pecyn yn gadael drwyddo, oherwydd y gyrchfan sy’n dewis y llwybr o hyd. Rhwymwch ffynhonnell ar liniadur y mae ei lwybr diofyn yn pwyntio i’r tiwnel, ac mae’r pecyn yn mynd i’r tiwnel beth bynnag.
Mae gan y symptom siâp darllenadwy unwaith y byddwch yn ei adnabod. Mae’n dal ar gyfer cyfeiriad LAN y mae’r rhyngwyneb a ddewisiwyd yn ei gyrraedd yn syth, ac yn methu ar gyfer unrhyw beth ar y rhyngrwyd y mae ei lwybr yn pwyntio at y tiwnel. Mae hefyd yn ymddangos ei fod yn gweithio nes i’r rhaglen roi gwaith i broses gynorthwyol, oherwydd ni ddywedwyd wrth broses gynorthwyol sy’n agor ei soced ei hun am y rhwymiad.
Symudwch y penderfyniad pan fo un broses yn uned anghywir
Os mai dyfais, nid rhaglen, yw’r gwir ofyniad, rhowch hi ar ei SSID neu VLAN ei hun a gadewch i’r llwybrydd benderfynu: mae’r ffynhonnell honno’n cymryd y llwybr arferol tra bo ffynonellau eraill yn defnyddio’r tiwnel. Mae peiriant porth pwrpasol yn y lluniad onest arall: mae’n dal y VPN ac yn derbyn yn unig y cyrchfannau y mae’r llwybrydd yn eu hanfon ato. Ar VLAN mae’r polisi’n cwmpasu pob ffrwd y mae’r ddyfais yn ei hagor, gan gynnwys y prosesau cynorthwyol a dorrodd ddull Windows. Y masnach yw cwmpas: ni ellir trin dwy raglen ar y ddyfais honno’n wahanol mwyach.
Mae’r ddau yn bolisïau ffynhonnell neu gyrchfan gyda chwmpas y gallwch ei ddweud mewn un frawddeg. Nid yw’r un ohonynt fesul ap, ac mae lluniad sy’n ei hysbysebu’i hun fel un fesul ap yn methu’r tro cyntaf y bydd y rhaglen yn dirprwyo ei gwaith i ail broses.