Sut i ganfod twnnel VPN gweithredol o god ar unrhyw blatfform
A yw’r twnnel yn bodoli, a yw’r cyrchfan hon yn mynd drwyddo, neu a yw’r pen pell yn ateb? Tri gwiriad gwahanol a thri signal gwahanol yw’r rhain.
Mae „A yw’r VPN ymlaen?“ mewn gwirionedd yn dri chwestiwn mewn un frawddeg. Pa un sydd ei angen ar eich cod yw’r penderfyniad cyntaf, a dyna’r un y mae’r rhan fwyaf o weithrediadau yn ei hepgor. A oes twnnel ar y ddyfais hon, a yw traffig i’r gyrchfan hon yn gadael drwyddo, neu a yw’r pen pell yn ateb gyda’r hunaniaeth rydych yn ei disgwyl. Dewiswch yr eiddo, yna dewiswch y signal sy’n ei fesur, yna dywedwch yn y log pa un a fesuroch mewn gwirionedd.
Tri eiddo, tri signal
Wedi’u cywasgu i un llinell yr un, mae gan y tri chwestiwn dri ateb gwahanol. Y tabl isod yw’r penderfyniad ei hun, nid crynodeb ohono.
| Property | Signal that answers it | What it still leaves open |
|---|---|---|
| Existence | The platform's own connection state: RAS on Windows, NetworkManager on D-Bus on Linux, scutil on macOS | Tunnels of a type the platform does not manage, which includes most third-party clients |
| Path | A route lookup for the one destination, or a scoped proxy or interface key that names the tunnel | Whether the far end is the peer you trust |
| Identity | An authenticated response from the far end, or a source-address policy applied on the server | Which local interface carried the packets |
Darllenwch y rhes olaf yn araf. Mae gwesteiwr preifat sy’n ateb yn profi bod rhywbeth wedi ateb, nid bod yr ateb wedi dod drwy’r twnnel, ac nid yw’n dweud dim am bwy sydd ar y pen arall. Os mai’r eiddo sydd ei angen arnoch yw’r llwybr, mesurwch y llwybr.
Bodolaeth: cyflwr y platfform ei hun
Mae Windows yn ateb hyn ar gyfer proffiliau brodorol drwy’r Remote Access Service API. Mae RasEnumConnections yn rhestru beth sydd wedi’i gysylltu, mae RasGetConnectStatus yn adrodd cyflwr un cofnod, ac mae RasGetLinkStatistics yn ychwanegu cyflymder, cyfrifwyr beitiau ac oedran y cysylltiad. Y terfynau yw’r pwynt: nid yw OpenVPN, WireGuard na chleientiaid gwerthwyr byth yn cofrestru cysylltiad RAS, felly mae twnnel iach o’r math hwnnw yn dangos rhestr wag ac mae cod naïf yn ei adrodd fel un i lawr.
Mae desktops Linux yn datgelu’r un eiddo drwy NetworkManager ar D-Bus, lle mae PropertiesChanged ar wrthrych cysylltiad VPN yn troi’r gwiriad yn ddigwyddiad ac mae’r eiddo State yn adrodd pan fydd y linc yn cyrraedd cysylltiedig. O gragen, mae nmcli connection show --active yn darllen yr un wybodaeth, sef yr hyn rydych ei eisiau wrth ddadfygio. Mae macOS yn cadw’r rhestr honno yn fframwaith System Configuration, gyda scutil fel ei olwg llinell orchymyn. Mae’r tri yn disgrifio cysylltiad y mae’r platfform yn ei reoli, ac mae’r tri yn tewi am dwnnel nad yw’n ei reoli.
Llwybr: ble mae’r pecyn yn mynd mewn gwirionedd
Mae paru enwau yw’r llwybr byr y mae pawb yn cyrraedd ato gyntaf: rhestrwch ryngwynebau, profwch y llinyn yn erbyn tun, tap, ppp neu ipsec, a chymerwch daro fel prawf. Heuristig yw hwn, a gall y set ryngwynebau edrych yr un fath p’un a oes rhywbeth yn symud drwyddi ai peidio. Roedd adeiliadau iOS hŷn yn ateb fel hyn a rhai diweddarach yn stopio, oherwydd nid oedd y rhyngwynebau gweladwy bellach yn gwahaniaethu’r ddau gyflwr.
Yr hyn a’i disodlodd yno yw geiriadur dirprwy’r system. Tra bod VPN wedi’i gysylltu, mae galwad gosodiadau dirprwy yn dychwelyd allweddi wedi’u cwmpasu i’r rhyngwynebau sy’n gysylltiedig â’r twnnel, a heb unrhyw beth wedi’i gysylltu mae’r geiriadur yn dychwelyd yn wag. Mae hwnnw’n ddatganiad gwannach nag y mae’n swnio, oherwydd mae’n cofnodi cred y system fod twnnel yn bodoli yn hytrach na pha gyrchfan sy’n ei ddefnyddio.
Mae gan Android ei fersiwn ei hun o’r trap: mae darllediad vpn.connectivity yn cyrraedd derbynwyr a ddatganwyd yn y maniffest ar rai adeiliadau ac yn cyrraedd derbynwyr a gofrestrwyd ar amser rhedeg ar eraill. Triniwch ef fel ymdrech orau, a chadwch brofwr uniongyrchol y tu ôl iddo.
Pan mai’r gyrchfan yw’r peth sy’n bwysig, gofynnwch i’r tabl llwybro yn lle’r rhestr addaswyr. Mae heuristigau’r porth cyrchfan diofyn yn torri ar beiriannau aml-rwydwaith ac ar dwneli sy’n gosod eu porth eu hunain.
Hunaniaeth: profwch y pen pell
Mae dolen sy’n anfon adlais ICMP i’r pen pell bob ychydig eiliadau yw’r gwiriad rhataf o’r math hwn, ac mae’n methu i gyfeiriad defnyddiol. Anelwch ef at gyfeiriad nad yw’n bodoli ond o fewn y rhwydwaith preifat, oherwydd mae un cyhoeddus yn ateb dros unrhyw gyswllt i fyny sy’n gweithio ac nid yw’n profi dim. Lle mae ICMP yn cael ei hidlo, mae cysylltiad TCP byr i borth y gwasanaeth yn gwneud yr un gwaith.
Mae gan wiriad ar ochr y gweinydd un signal yn union ar gael: y cyfeiriad ffynhonnell ar y cysylltiad. Mae cynnal y rhestr o ystodau yn waith cynnal a chadw, ac ni all wahanu twnnel oddi wrth unrhyw rwydwaith arall sy’n defnyddio’r un bloc.
Gall polisi bras fyw gyda hynny. Ni all hunaniaeth, felly dilyswch y cleient yn hytrach na dibynnu ar ble mae ei becynnau’n ymddangos eu bod yn dod.
Cofnodwch y categori, nid y rheithfarn
Cadwch y categorïau methiant ar wahân yn y log: dim rhyngwyneb o gwbl, rhyngwyneb yn bresennol ond y gyrchfan yn anghyrraeddadwy, cyrchfan yn gyrraeddadwy ond dilysiad wedi’i wrthod. Tri pherchennog gwahanol yw’r rhain, ac mae pob un yn agor ymchwiliad gwahanol.
Mae eu cwympo i un „VPN i lawr“ yn anfon yr adroddiad at dîm na all ei drwsio. Y categori yw’r allbwn defnyddiol; y rheithfarn yw’r hyn sy’n ei wneud yn anghywir.