Ubuntu18.04 遠程修改靜態(tài)IP

首先介紹下怎么設置靜態(tài)IP

2018年4月26日趣苏,ubuntu 18.04發(fā)行,第一時間下載安裝了SERVER版本梯轻。使用VM14版本的虛擬機食磕,開始使用DHCP獲得IP地址,沒有意外喳挑,可以直接上網(wǎng)彬伦。然而在更改VM的網(wǎng)絡模式為橋接模式時滔悉,想把虛擬機設為固定IP時,出現(xiàn)故障单绑,一直不能獲得地址回官,也上不了網(wǎng)。經(jīng)常無數(shù)次測試搂橙,有以下經(jīng)驗可供參考歉提。

ubuntu從17.10開始,已放棄在/etc/network/interfaces里固定IP的配置区转,即使配置也不會生效苔巨,而是改成netplan方式 ,配置寫在/etc/netplan/01-netcfg.yaml或者類似名稱的yaml文件里废离,18.04的server版本安裝好以后侄泽,配置文件是:/etc/netplan/50-cloud-init.yaml,修改配置以后不用重啟蜻韭,執(zhí)行 netplan apply 命令可以讓配置直接生效悼尾。以前的重啟網(wǎng)絡服務命令/etc/init.d/networking restart或者services network restrart也都會提示為無效命令。

sudo vi /etc/netplan/01-network-manager-all.yaml肖方,配置文件可按如下內(nèi)容修改闺魏。

network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:   #配置的網(wǎng)卡名稱
      dhcp4: no    #dhcp4關閉
      dhcp6: no    #dhcp6關閉
      addresses: [192.168.1.55/24]   #設置本機IP及掩碼
      gateway4: 192.168.1.254   #設置網(wǎng)關
      nameservers:
          addresses: [114.114.114.114, 8.8.8.8]   #設置DNS

這里簡單介紹下 [192.168.1.55/24] ,里的192.168.1.55就是設置的靜態(tài)IP窥妇,IP地址后面跟/24表示掩碼位是24位舷胜,子網(wǎng)掩碼是255.255.255.0的IP地址,其主機位最多有254個活翩。

注意點:
1.以上配置文件共11行烹骨,其中第2,3材泄,6沮焕,7四行可以不寫,測試過沒有這四行拉宗,網(wǎng)絡也能工作正常峦树,第5行的ens33為虛擬網(wǎng)卡,可以使用ifconfig -a查看本機的網(wǎng)卡旦事。
2.配置文件里在冒號:號出現(xiàn)的后面一定要空一格魁巩,不空格則在運行netplan apply時提示出錯。
3.關鍵之關鍵是看清配置總共分為五個層次姐浮,逐層向后至少空一格谷遂,
第一層-network:
第二層-- ethernets:
第三層--- ens33:
第四層----addresses: [192.168.1.55/24]
第四層----gateway4: 192.168.1.254
第四層----nameservers:
第五層-----addresses: [114.114.114.114, 8.8.8.8]

出現(xiàn)類似錯誤:line8 column 6:cloud not find expected ':' #提示是冒號:后面沒加空格
出現(xiàn)類似錯誤:netplan found character that cannot start any token,#提示是沒有按五個層次寫配置文檔卖鲤,一定要下一層比上一層多空一格或以上肾扰。

啟用生效

sudo netplan apply

到這里就可以設置靜態(tài)IP了畴嘶,接下來結合ssh,sftp實現(xiàn)遠程修改

直接上代碼

    def updateIP(self):
        try:
            IP = self.lineEdit_50.text()
            name = self.lineEdit_51.text()
            if IP == '' or name == '':
                QMessageBox.warning(self, "警告", "請正確輸入修改的IP集晚!")
                return
            self.createFilr(IP,name)
            hostname = self.lineEdit.text()
            username = '****'
            password = '****'
            rootdir = '01-network-manager-all.yaml'
            dir_path = '/etc/netplan/'
            scp = paramiko.Transport((hostname, 22))
            scp.connect(username=username, password=password)
            sftp = paramiko.SFTPClient.from_transport(scp)
            ssh = paramiko.SSHClient()
            # 允許連接不在know_hosts文件中的主機
            ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())  # 第一次登錄的認證信息
            # 連接服務器
            ssh.connect(hostname=hostname, port=22, username=username, password=password)
          #修改配置文件權限窗悯,777是最高權限 
            command = "chmod 777 /etc/netplan/ -R"
            stdin, stdout, stderr = ssh.exec_command('echo %s|sudo -S %s' % (password, command))
           
            res, err = stdout.read(), stderr.read()
            result = res if res else err
            sftp.put(rootdir,dir_path+rootdir)
#啟用生效
            command = "netplan apply"
            stdin, stdout, stderr = ssh.exec_command('echo %s|sudo -S %s' % (password, command))
           
            res, err = stdout.read(), stderr.read()
            result = res if res else err
      
            scp.close()
            ssh.close()
        
            QMessageBox.warning(self, "提示", "修改成功!")
            return 0
        except:
            QMessageBox.warning(self, "警告", "修改失斖蛋巍蒋院!")

#創(chuàng)建網(wǎng)絡配置文件
    def createFilr(self,IP,name):
        file = open('01-network-manager-all.yaml', 'wb')
        str_f = '# Let NetworkManager manage all devices on this system\n' + 'network:\n' + '  version: 2\n' + '  # renderer: NetworkManager\n' \
                + '  ethernets:\n' + '          '+ name +':\n' \
                + '                  addresses: [' + IP + '/24]\n'
        b_f = str.encode(str_f)
        file.write(b_f)
        file.close()

這里結合了pyqt,創(chuàng)建一個窗口工具条摸,更方便的通過遠程去修改IP

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末悦污,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子钉蒲,更是在濱河造成了極大的恐慌,老刑警劉巖彻坛,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件顷啼,死亡現(xiàn)場離奇詭異,居然都是意外死亡昌屉,警方通過查閱死者的電腦和手機钙蒙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來间驮,“玉大人躬厌,你說我怎么就攤上這事【好保” “怎么了扛施?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長屹篓。 經(jīng)常有香客問我疙渣,道長,這世上最難降的妖魔是什么堆巧? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任妄荔,我火速辦了婚禮,結果婚禮上谍肤,老公的妹妹穿的比我還像新娘啦租。我一直安慰自己,他們只是感情好荒揣,可當我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布篷角。 她就那樣靜靜地躺著,像睡著了一般乳附。 火紅的嫁衣襯著肌膚如雪内地。 梳的紋絲不亂的頭發(fā)上伴澄,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天,我揣著相機與錄音阱缓,去河邊找鬼非凌。 笑死,一個胖子當著我的面吹牛荆针,可吹牛的內(nèi)容都是我干的敞嗡。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼航背,長吁一口氣:“原來是場噩夢啊……” “哼喉悴!你這毒婦竟也來了?” 一聲冷哼從身側響起玖媚,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤箕肃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后今魔,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體勺像,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年错森,在試婚紗的時候發(fā)現(xiàn)自己被綠了吟宦。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡涩维,死狀恐怖殃姓,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情瓦阐,我是刑警寧澤蜗侈,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站垄分,受9級特大地震影響宛篇,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜薄湿,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一叫倍、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧豺瘤,春花似錦吆倦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春须妻,著一層夾襖步出監(jiān)牢的瞬間仔蝌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工荒吏, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留敛惊,地道東北人。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓绰更,卻偏偏與公主長得像瞧挤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子儡湾,可洞房花燭夜當晚...
    茶點故事閱讀 43,509評論 2 348