ఒక ప్రోగ్రామ్ సాధారణ కనెక్షన్‌ను ఉపయోగించాలి, మిగతావన్నీ టన్నెల్‌లో ఉండాలి, మరియు క్లయింట్‌కు దానికి స్విచ్ లేదు. దాచిన మెనూ కూడా కనిపించదు. మార్గం ప్యాకెట్ లోపలి ఫీల్డ్‌ల నుండి ఎంపిక చేయబడుతుంది, ప్యాకెట్ చిరునామాలు మరియు పోర్టులను మోసుకెళ్తుంది, దాన్ని సృష్టించిన ప్రక్రియ గుర్తింపును కాదు, కాబట్టి మినహాయింపు ఆ ఫీల్డ్‌లలో ఒకదానిలో వ్యక్తపరచాలి. ఒక ప్యాకెట్‌ను ఒకసారి అనుసరించండి, అందుబాటులో ఉన్న ఎంపికలు మర్మమైనవి కావడం ఆగిపోతాయి.

క్లయింట్ దాన్ని ఎందుకు ఇవ్వలేదు

గమ్యస్థాన రూటింగ్ గమ్య చిరునామాను ప్రిఫిక్స్‌లతో పోల్చి పొడవైన సరిపోలికను ఉంచుతుంది. ఆ క్షణంలో ప్రతి ప్యాకెట్ ఒకేలా కనిపిస్తుంది, దాన్ని ఏది సృష్టించినా. మూల విధాన రూటింగ్ పోలికను మూల చిరునామా వరకు విస్తరిస్తుంది, మరియు ప్రతి ఆచరణాత్మక పరిష్కారం ఉపయోగించే కొక్కెం అదే: మూలాన్ని మార్చండి, మరొక పట్టిక అర్హత పొందుతుంది.

పోర్టులు సహాయపడవు. పోర్టు ఆధారిత మినహాయింపు గమ్య శోధనకు ముందు మూల్యాంకనం చేయాల్సి ఉండేది, ఆ నిర్ణయంలో పోర్టుకు ఎలాంటి పాత్రా లేదు. పోర్టు ఆధారిత మినహాయింపు అని ప్రచారం చేయబడేదంతా వాస్తవానికి మరో ఫీల్డ్ ద్వారా మినహాయించి దాన్ని వదులుగా వివరిస్తుంది.

నిజమైన యాప్-వారీ రూటింగ్ ప్లాట్‌ఫారం దానికి యంత్రాంగాన్ని జోడించిన చోటే ఉంటుంది, ఉదాహరణకు Windows లో ఫిల్టర్ కాల్స్ లేదా Android లో VPN సేవా బైండింగ్. డెస్క్‌టాప్ OpenVPN ఇన్‌స్టాన్స్ వాటిలో ఏదీ తీసుకురాదు, ఏ కాన్ఫిగరేషన్ ఫ్లాగ్ దాన్ని సృష్టించదు.

Linux: ప్రక్రియను గుర్తించండి, తర్వాత గుర్తును రూట్ చేయండి

అత్యంత శుభ్రమైన విధానం నిర్ణయాన్ని సాకెట్‌ను కలిగి ఉన్న ప్రక్రియకు కట్టివేస్తుంది. owner సరిపోలిక OUTPUT గొలుసులో స్థానికంగా ఉత్పత్తి అయ్యే ట్రాఫిక్‌కు పనిచేస్తుంది, కాబట్టి అక్కడ వేసిన గుర్తు వేరే పట్టికను ఎంచుకోగలదు:

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

వినియోగదారు 1001 ప్యాకెట్లు తర్వాత పట్టిక 200 ను సంప్రదించి సాధారణ గేట్‌వే ద్వారా బయటకు వెళ్తాయి, ప్రధాన పట్టిక మిగతావన్నీ టన్నెల్‌కు పంపుతూనే ఉంటుంది. owner సరిపోలిక స్థానికంగా ఉత్పత్తి అయిన ప్యాకెట్లకు మాత్రమే వర్తిస్తుంది, అది ఇక్కడ ముఖ్యమైన ట్రాఫిక్, మరియు అది మరో హోస్ట్ కోసం ఫార్వార్డ్ చేసిన ప్యాకెట్లను వర్గీకరించలేదు. ఉద్దేశంతో కాదు, సాధనాలతో నిర్ధారించండి: ss -tnp ఏర్పాటైన కనెక్షన్ల స్థానిక చిరునామా మరియు యజమాని ప్రక్రియను చూపుతుంది, ip route get 1.1.1.1 mark 0x1 గుర్తు ఏ పట్టికను ఎంచుకుంటుందో చూపుతుంది.

నెట్‌వర్క్ పేరు స్థలం స్వయం సమృద్ధ ప్రోగ్రాముకు మరింత బలమైన సమాధానం, ఎందుకంటే దాని లోపల సృష్టించే ప్రతి సాకెట్ నిర్మాణం ప్రకారం దానికి కట్టుబడి ఉంటుంది, కాబట్టి సహాయక ప్రక్రియలు మరియు శిశు కనెక్షన్లు ఎలాంటి వర్గీకరణ లేకుండా ప్రవర్తనను వారసత్వంగా పొందుతాయి. ఖర్చు ప్లంబింగ్: ఒక veth జత, ప్రతి చివరలో ఒక చిరునామా, మరియు పేరు స్థలం లోపల హోస్ట్ వైపు తిరిగి చూపే డిఫాల్ట్ మార్గం.

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: గమ్యమే ఇంకా నిర్ణయిస్తుంది

Windows బయటకు వెళ్లే ఇంటర్‌ఫేస్‌ను గమ్యం నుండి ఎంచుకుంటుంది, కాబట్టి వేరే మార్గం కావాల్సిన ప్రోగ్రామ్ ఆ ఎంపికకు ముందు స్టాక్ సంప్రదించే ఏదైనా మార్చాలి. ForceBindIP మొదటి సగాన్ని కవర్ చేస్తుంది: మీరు పేర్కొన్న స్థానిక చిరునామాకు సాకెట్లు ఇప్పటికే కట్టబడిన స్థితిలో ప్రోగ్రామ్‌ను ప్రారంభిస్తుంది. అది మాత్రమే ప్యాకెట్ ఏ ఇంటర్‌ఫేస్ ద్వారా బయటకు వెళ్తుందో మార్చదు, ఎందుకంటే మార్గాన్ని ఇంకా గమ్యమే ఎంచుకుంటుంది. డిఫాల్ట్ మార్గం టన్నెల్ వైపు చూపే ల్యాప్‌టాప్‌లో మూలాన్ని కట్టండి, ప్యాకెట్ ఏదో విధంగా టన్నెల్‌లోకి వెళ్తుంది.

లక్షణానికి ఒకసారి తెలిస్తే చదవగల ఆకారం ఉంటుంది. ఎంచుకున్న ఇంటర్‌ఫేస్ నేరుగా చేరే LAN చిరునామాకు ఇది వర్తిస్తుంది, ఇంటర్నెట్‌లో మార్గం టన్నెల్ వైపు చూపే దేనికైనా విఫలమవుతుంది. ప్రోగ్రామ్ పనిని సహాయకుడికి అప్పగించే వరకు అది పని చేస్తున్నట్టు కూడా కనిపిస్తుంది, ఎందుకంటే తన సొంత సాకెట్ తెరిచే సహాయకుడికి బంధం గురించి ఎప్పుడూ చెప్పలేదు.

ఒక ప్రక్రియ తప్పు యూనిట్ అయినప్పుడు నిర్ణయాన్ని తరలించండి

నిజమైన అవసరం ప్రోగ్రామ్ కాకుండా పరికరం అయితే, దాన్ని దాని స్వంత SSID లేదా VLAN పై ఉంచి రౌటర్ నిర్ణయించనివ్వండి: ఆ మూలం సాధారణ మార్గం తీసుకుంటుంది, మిగతా మూలాలు టన్నెల్ ఉపయోగిస్తాయి. అంకిత గేట్‌వే మెషిన్ మరో నిజాయితీ నిర్మాణం: అది VPN ను ఉంచుకుని రౌటర్ పంపే గమ్యాలను మాత్రమే స్వీకరిస్తుంది. VLAN లో విధానం పరికరం తెరిచే ప్రతి ప్రవాహాన్ని కవర్ చేస్తుంది, Windows విధానాన్ని బద్దలు కొట్టిన సహాయక ప్రక్రియలతో సహా. మార్పిడి పరిధి: ఆ పరికరంలోని రెండు ప్రోగ్రాములను ఇకపై భిన్నంగా పరిగణించలేము.

రెండూ ఒక వాక్యంలో చెప్పగల పరిధి ఉన్న మూల లేదా గమ్య విధానాలు. ఏదీ యాప్-వారీ కాదు, మరియు తనను యాప్-వారీ అని ప్రచారం చేసుకునే నిర్మాణం ప్రోగ్రామ్ తన పనిని రెండో ప్రక్రియకు అప్పగించిన మొదటి సారే విఫలమవుతుంది.

సంబంధిత వ్యాసాలు