सवाल क्या कमांड लाइन से DHCP को अक्षम करने का कोई सुरक्षित तरीका है?


लघु संस्करण

मुझे पता है कि यह प्रश्न दूसरों के समान ही है और मैंने वास्तव में उत्तर के लिए इंटरनेट खोजा है, लेकिन ऐसा लगता है कि कोई दृष्टिकोण काम नहीं कर रहा है या समाधान "सर्वोत्तम अभ्यास के लिए जटिल" होने लगते हैं (मैं समझाने की कोशिश करूंगा)। मैं एक सुरक्षित तरीका तलाश रहा हूं कमांड लाइन से DHCP को कैसे अक्षम करें (स्क्रिप्ट में उपयोग करने के लिए)।

पृष्ठभूमि

मैं उबंटू सर्वर 12.04 और remastersys (अच्छी तरह से काम करता है) के साथ "लाइव-सीडी" बनाने की कोशिश कर रहा हूं। सिस्टम डिफ़ॉल्ट रूप से बूटिंग के दौरान आईपी प्राप्त करने के लिए कॉन्फ़िगर किया गया है। यह ठीक है - महत्वपूर्ण बात यह है कि एक स्क्रिप्ट (जो बूटिंग के बाद चलती है) एक स्थिर आईपी सेट करने के लिए सक्षम है (कुछ विशिष्ट मामलों में) ifconfig (नहीं / आदि / नेटवर्क / इंटरफेस ):

ifconfig eth0 192.168.0.1

दरअसल यह भी काम कर रहा है, लेकिन आईपी केवल तब तक जारी रहता है जब तक कि पहले प्राप्त पट्टे के डीएचसीपी पट्टा समय खत्म नहीं हो जाता है। एक नया आईपी eth0 को सौंपा जाएगा, जो (संक्षेप में) सिस्टम को तोड़ देता है। मैंने सोचा "कोई बड़ा सौदा नहीं होगा, निश्चित रूप से कुछ ऐसा होगा:"

ifconfig eth0 dhcpdisabled

लेकिन मैं पहचानने के समाप्त हो गया, यह इतना आसान काम नहीं करता है। संपादन /etc/network/interfaces थोड़ा मुश्किल है, क्योंकि यह remastersys द्वारा उत्पन्न होता है (वास्तव में कैस्पर की 23networking स्क्रिप्ट)।

मैं इसे फिर से लिख सकता हूं और नेटवर्किंग को पुनरारंभ कर सकता हूं, लेकिन सक्रिय dhclient.leases के साथ क्या होगा? डीएच क्लाइंट अभी भी पृष्ठभूमि में चल रहा होगा (यह नहीं होना चाहिए कुछ पदों का सुझाव है कि यह होगा मेरे परीक्षणों से पता चला है कि इसे "यादृच्छिक रूप से" फिर से शुरू किया गया है, यदि डिहाइक्टेड मारे गए हैं), क्या मुझे dhclient.leases फ़ाइलों को निकालना या खाली करना है, resolv.conf के बारे में क्या?

निराशा

इसे समेटने के लिए - मेरी राय में यह वास्तव में "सीधा" नहीं है और कुछ हद तक "स्थिर महसूस नहीं करता" है। यह प्रश्न (156183)  dhclient पैकेज को हटाने के लिए सुझाव दिया, लेकिन: क्या यह समस्या हल करेगा? क्या यह अन्य सामान तोड़ देगा?

क्या इसके लिए वास्तव में कोई आदेश नहीं है? मुझे आशा है कि मैंने इसे अभी अनदेखा कर दिया है।


4
2017-08-01 13:22


मूल


आगंतुकों के लिए, आपको कुछ भी पंकिल या हटाने की आवश्यकता नहीं है। एक बेहतर जवाब मिल सकता है यहाँ। - John
जॉन, मुझे उस दिन एक पटकथा के लिए जरूरी था। यह यहाँ कैसे काम करेगा? फ़ाइल को पाइप करें और स्ट्रिंग को प्रतिस्थापित करें? मुझे परिपक्व नहीं लगता है। - Mister Henson


जवाब:


मैं आपको एक संक्षिप्त उदाहरण देने की कोशिश करूंगा कर सकते हैं करें, लेकिन यह पूरा उदाहरण नहीं है क्योंकि सटीक सेटअप, ज़रूरत इत्यादि काफी भिन्न हो सकती हैं।

सबसे पहले, इस मामले को और अधिक सरल बनाने के लिए कुछ धारणाएं करें:

  1. आप नेटवर्क-मैनेजर का उपयोग नहीं कर रहे हैं
  2. आप उपयोग नहीं कर रहे हैं resolvconf, लेकिन स्थिर /etc/resolv.conf फ़ाइल
  3. आपकी इंटरफेस फ़ाइल में शामिल नहीं है allow-hotplug अगर केबल अनप्लग / प्लग किया गया है तो पुन: कॉन्फ़िगर करने के लिए लाइनें।

आइए हमारे सहायक परिवर्तनीय DEV को सेट करें

## your device is eth0
# stop /etc/interface control of the eth0 device, should also stop/kill dhcp for that device
ifdown eth0
## stop dhclient to be sure, don't worry about leases files etc
pkill dhclient
## ubuntu precise calls dhclient with dhclient3
pkill dhclient3
# set ip manually: (NETMASK is quite often 24 == 255.255.255.0) 
ifconfig eth0 up 192.168.0.1/NETMASK
# do you need default gw? (for this example it's 192.168.0.254)
route add default gw  192.168.0.254

## if your /etc/resolv.conf is incorrect add correct nameserver like this:
### 8.8.8.8 = goole open dns
echo 'nameserver 8.8.8.8' > /etc/resolv.conf

अब अगर धारणा 1) गलत है (नेटवर्क प्रबंधक बंद करो):

stop network-manager

धारणा के लिए 2) या तो हटा दें resolvconf या हटा दें /etc/resolv.conf अगर यह एक सिमलिंक है और इसे स्थिर फ़ाइल के साथ प्रतिस्थापित करें

[ -h /etc/resolv.conf ] && rm /etc/resolv.conf

और धारणा के लिए 3): यह हॉटप्लग लाइनों पर टिप्पणी करनी चाहिए .. और मुझे आशा है कि यह पर्याप्त है

perl -i -pe 's/^(\s*allow-hotplug)/# $1/g' /etc/network/interfaces

3
2017-08-08 12:51



मुझे लगता है कि आपको दो बार पिक्ल का उपयोग करने की ज़रूरत नहीं है - pkill dhclient दोनों dhclient और dhclient3 को मारना चाहिए - यह regex का उपयोग करता है। शायद इसके बजाय killall का उपयोग करें? - scdmb


यदि आप अपने distro के लिए उपलब्ध हैं तो आप "systemctl" का उपयोग कर सकते हैं। यह मेरे ओपनएसयूएसई वितरण के लिए उपलब्ध है, और मैं इसे फॉलोइंग तरीके से सेवाओं को अक्षम करने के लिए उपयोग करता हूं।

systemctl disable wickedd-dhcp4.service

जहां विकीड-डीएचसीपी 4 मेरे सिस्टम पर डीएचसीपी क्लाइंट कॉन्फ़िगरेशन को संभालने वाली सेवा का नाम है। आईपीवी 6 डीएचसीपी कॉन्फ़िगरेशन के लिए भी एक सेवा है, आप इसे अक्षम करने के लिए भी नहीं चाहते हैं।

systemctl disable wickedd-dhcp6.service

1
2017-09-11 03:46



Thx लेकिन उबंटू का इस्तेमाल किया गया था ... - Mister Henson
बस जोड़ने के लिए, अगर आप डीएचसीपी द्वारा प्राप्त पते को जारी करना चाहते हैं, तो डीएचसीपी चलाने के बाद, आप "dhclient -r eth0" कर सकते हैं। तब मुख्य प्रश्न का उत्तर नहीं है, लेकिन यह मदद कर सकता है। - Sahil Singh


इसे ठीक करने का सबसे आसान तरीका तरीका सरल है: बस अपने डीएचसीपी सर्वर को बताएं कि कुछ मैक पते पर आईपी दिए जाने चाहिए। मैंने जो भी राउटर कभी छुआ है, वह इस सुविधा में है और यदि आप इसका उपयोग कर रहे हैं dhcp3-server, आईटी इस बस इतना आसान है


0
2017-08-01 13:42



लेकिन वास्तव में आपका जवाब बिंदु गुम है। मुझे लगता है कि मेरा प्रश्न स्पष्ट रूप से लिखा नहीं गया था, लेकिन मैंने इसे संशोधित किया। - Mister Henson


डीएचसीपी-क्लाइंट को बस बंद करने के बारे में क्या pkill dhclient?


0
2017-08-06 07:12



धन्यवाद, मैंने कोशिश की और पट्टे की फाइलों को हटा दिया, लेकिन किसी भी तरह से यह काम नहीं करता है (dhclient को पुनरारंभ करना प्रतीत होता है) ... - Mister Henson
तो हम उस प्रक्रिया की खोज कर रहे हैं जो dhclient को पुनरारंभ कर रहा है, है ना? बस डबल चेक करने के लिए, क्या आप कृपया सत्यापित करेंगे कि आपके पास नेटवर्क-मैनेजर स्थापित नहीं है? और कृपया / etc / network / interfaces की सामग्री पोस्ट करें। धन्यवाद! - Clausi


मैं अपने सर्वर पर DHCP को अक्षम करने के लिए निम्न आदेश का उपयोग करता हूं।

sudo update-rc.d -f dhcp3-server remove

यह क्या करता है किसी भी सिस्टम स्टार्टअप लिंक को हटाने के लिए /etc/init.d/dhcp3-server

तो अगली रीबूट पर डीएचसीपी नहीं लाता है।

यह सरल, आसान और सुरक्षित है।


0
2017-10-07 21:17