गेम प्रक्रिया यूडीपी सॉकेट को वीपीएन इंटरफ़ेस से नहीं बांधती है


1

मैंने हाल ही में कुछ दोस्तों के साथ लैन गेम खेलने के लिए एक वीपीएन स्थापित किया है। मेरे पास एक लिनक्स सर्वर चल रहा है pptpdऔर सफलतापूर्वक ऑपरेटिंग सिस्टम में निर्मित वीपीएन क्लाइंट का उपयोग करके विंडोज पर कनेक्ट करने में सक्षम है। मैंने परीक्षण किया है कि वीपीएन ग्राहकों के बीच सूचनाओं को सही तरीके से प्रसारित करता है (प्रसारण संदेशों सहित)। यह प्रत्येक क्लाइंट पर एक वर्चुअल नेटवर्क एडेप्टर बनाता है जिसे सिस्टम पर सर्वोच्च प्राथमिकता दी जाती है। इसका अर्थ है कि सभी नेटवर्क कनेक्शन डिफ़ॉल्ट रूप से इसका उपयोग करते हैं (उदाहरण के लिए एक वेब ब्राउज़र) और यह नाम क्वेरी करते समय सबसे पहले लौटाया जाता है (जैसे सॉकेट एपीआई से लौटे परिणाम जैसे getaddrinfo()औरgethostbyname())। मेरे पास जो समस्या है, वह यह है कि हम जिस विशेष गेम को खेलना चाहते हैं, वह अपने यूडीपी सॉकेट्स को सही नेटवर्क इंटरफेस के लिए बाध्य नहीं कर रहा है। इसके बजाय खेल प्रक्रिया स्पष्ट रूप से मूल नेटवर्क कनेक्शन ( eth0या इसके समतुल्य विंडोज के इंटरफ़ेस) को बांधती है wlan0। मैं चाहता हूं कि यह वीपीएन एडॉप्टर (विंडोज के बराबर ppp0) से जुड़ जाए ।

ईए गेम्स द्वारा इस विशेष गेम को बैटल फॉर मिडल-अर्थ कहा जाता है। जब LAN मल्टीप्लेयर लॉबी के अंदर, खेल यूडीपी पोर्ट 8086 के लिए एक सॉकेट बांधता है। यह इस पोर्ट का उपयोग प्रसारण डेटाग्राम को अन्य साथियों को सचेत करने और अन्य साथियों से अलर्ट प्राप्त करने के लिए भेजता है। यदि 8086 अनुपलब्ध है, तो यह अगले अनुक्रमिक पोर्ट से जुड़ जाता है। इस कारण यह समान प्रसारण संदेश की प्रतियां बंदरगाहों की एक सीमा (यानी 8086..8095) को भेजता है। एक बार खेल शुरू हो जाने के बाद, साथियों ने प्रसारण के विपरीत एक दूसरे को निर्देशित डेटाग्राम भेजना शुरू कर दिया। जैसा कि यह अभी खड़ा है, गेम ट्रैफिक में से कोई भी वीपीएन को हिट नहीं कर रहा है। यहां कुछ netstatआउटपुट है जो 10.0.1.0/24नेटवर्क के विपरीत गेम (नेटवर्क को होम राउटर द्वारा आवंटित) के लिए बाध्य करता है ( 192.168.0.0/24वीपीएन सर्वर द्वारा आवंटित):

UDP    10.0.1.18:137          *:*
UDP    10.0.1.18:138          *:*
UDP    10.0.1.18:1900         *:*
UDP    10.0.1.18:8086         *:*   this is BFME
UDP    10.0.1.18:51955        *:*
UDP    127.0.0.1:1900         *:*
UDP    127.0.0.1:51956        *:*
UDP    192.168.0.100:137      *:*
UDP    192.168.0.100:138      *:*
UDP    192.168.0.100:1900     *:*
UDP    192.168.0.100:51954    *:*

यह स्पष्ट है कि यह गेम चयनात्मक है कि यह किस इंटरफ़ेस का उपयोग करता है, जो समझ में आता है कि यह अन्य साथियों के पते निर्धारित करने के लिए खोज संदेशों के साथ उपयोगकर्ता के लैन को बाढ़ने की आवश्यकता है। लेकिन क्या वीपीएन को इंटरनेट कनेक्शन के माध्यम से लैन प्रदान नहीं किया जाता है? क्यों गेम पुराने इंटरफ़ेस को चुन रहा है और उच्च-प्राथमिकता वाले वीपीएन इंटरफ़ेस को नहीं? मुझे लगता है कि कुछ अस्पष्ट सेटिंग होनी चाहिए जो विंडोज को लैन के रूप में वीपीएन नेटवर्क को कॉन्फ़िगर करने देती है; हालाँकि मुझे इसे ढूंढने में सबसे कठिन समय आ रहा है।

सही दिशा में कोई मदद की सराहना की है!

एक विचार के रूप में: मुझे पता है कि गेम NetBIOS कार्यक्षमता का उपयोग कर रहा है (मैंने फ़ंक्शन आयात की इसकी सूची को डंप कर दिया है)। मुझे यह भी पता है (ऐतिहासिक रूप से) कि यदि कोई भी साथी एक ही कार्यसमूह का सदस्य नहीं है तो उसे नजरअंदाज कर दिया जाता है। समस्या का सामना कर रहा हूँ मैं नेटवर्क के NetBIOS विन्यास के साथ कुछ करने के लिए शामिल कर रहा हूँ?

जवाबों:


0

मैं प्रश्न में खेल के लिए विशिष्ट कॉन्फ़िगरेशन विकल्प का उपयोग करके इस समस्या को हल करने में सक्षम था (जो कि किसी छोटी राशि के साथ दुर्घटना से काफी ठोकर खाई थी)। इससे मुझे सीधे निर्दिष्ट करने की अनुमति मिली कि खेल को किस इंटरफ़ेस का उपयोग करना चाहिए। यह Options.iniफ़ाइल में निम्न प्रविष्टि (स्थित में %USERPROFILE%\AppData\Roaming\My Battle For Middle-Earth Files\) जोड़कर किया जाता है :

IPAddress = x.x.x.x

x.x.x.xउस इंटरफ़ेस के IPv4 पते का डॉटेड-दशमलव प्रतिनिधित्व जहां आप गेम प्रक्रिया का उपयोग करना चाहते हैं।

मुझे कभी यह पता नहीं चला कि खेल उच्च प्राथमिकता वाले वर्चुअल इंटरफ़ेस की अनदेखी क्यों कर रहा है, इसलिए मैं यह निष्कर्ष निकालता हूं कि यह गेम की इंजीनियरिंग में एक डिज़ाइन दोष होना चाहिए और ऐसा कुछ नहीं जिसे विंडोज में कॉन्फ़िगर किया जा सकता है।

यह भी ध्यान देने योग्य है कि मैंने इसके बजाय ओपनवीपीएन का उपयोग करने के लिए स्विच किया pptpdक्योंकि यह बेहतर लिंक-लेयर समर्थन प्रदान करता था (यानी मैं प्रसारण के फ्रेम को बेहतर हैंडल करने के लिए सर्वर के वर्चुअल एडेप्टर को पा सकता था)।


0

यह कुछ मशीनों पर भी मदद कर सकता है। यह काम करेगा या नहीं यह पूरी तरह से यादृच्छिक लगता है, लेकिन जब आप नेटवर्क स्विच करते हैं तो हर बार एक कॉन्फ़िगरेशन फ़ाइल को संपादित करने की तुलना में एक सेवा स्थापित करना अभी भी आसान है;)

जिस तरह से BFME नेटवर्किंग को संभालता है, और दुख की बात यह है कि डेवलपर अब मौजूद नहीं है और यह खुला स्रोत नहीं है, इसलिए हम कभी नहीं जान पाएंगे ...


सुपर उपयोगकर्ता में आपका स्वागत है। बाहरी लिंक टूट या अनुपलब्ध हो सकते हैं, जिस स्थिति में आपका उत्तर उपयोगी नहीं होगा। कृपया अपने उत्तर के भीतर आवश्यक जानकारी शामिल करें और एट्रिब्यूशन और आगे पढ़ने के लिए लिंक का उपयोग करें। धन्यवाद।
फिक्सर 1234
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.