學院於2017年12月29日采購一台深度學習服務器,操作系統為ubuntu14.04server,配置過程遇到各種坑,現就服務器終端命令行網絡配置過程心得分享如下:
1.申請固定IP地址
開始嘗試從教學樓路由器接一根網線到服務器上,設置好后能訪問外網,但是IP地址訪問不能覆蓋整個校園內網,僅與此路由器相連的電腦可以ip訪問。這是由於路由器分配的是192.168.1.1的小局域ip,需要拿着有效證件以及服務器mac地址(通過ifconfig可查看)到網絡管理中心申請校園內網固定IP地址。
2.設置固定IP地址
2.1 設置ip地址
vim /etc/network/interfaces
作如下修改:
# The loopback network interface
auto lo
iface lo inet loopback
auto etho
iface etho inet static
address 202.204.110.243
netmask 255.255.255.0
gateway 202.204.110.254
2.2 設置DNS
vim /etc/resolvconf/resolv.conf.d/base
作修改如下:
nameserver 202.204.105.1
nameserver 202.204.105.5
2.3 刷新配置文件
resolvconf -u
2.4 重啟網絡
/etc/init.d/networking restart
3.登錄校園網關賬號訪問外網
至此,在校園局域網內可以通過ssh+ip地址訪問服務器,但是下載外網資源需要登錄校園網關。查閱相關資料,主要有兩種方法登錄校園網關賬號密碼,其一,shell腳本,其二,python腳本;這里我使用的是python腳本命令行登錄校園網關,主要包括登錄和注銷兩個過程:
a.登錄源碼(connect.py)
import urllib2 import urllib class Loginer(): def __init__(self, username, password): self.loginUrl = 'http://202.204.105.195:803/srun_portal_pc.php?ac_id=1&' #單引號內替換為校園網登錄網絡地址 self.username = username self.password = password self.openner = urllib2.build_opener() def login(self): postdata = { 'username': self.username, 'password': self.password, 'action': 'login', 'ac_id': '1', 'user_ip':'', 'nas_ip':'', 'user_mac':'', 'url':'' } postdata = urllib.urlencode(postdata) myRequest = urllib2.Request(url=self.loginUrl, data=postdata) result = self.openner.open(myRequest).read() resStr=str(result) ind=resStr.find('font-weight:bold;color:orange') if(ind!=-1): print 'connected successfully'
else: print 'connected faild!! Maybe your username or password is wrong!'
def main(): username=raw_input('Enter your username:') password=raw_input('Enter your password:') file=open('temp_username.dat','w') file.write(username) file.close() l = Loginer(username,password) l.login() if __name__ == '__main__': main() print 'done'
b.退出源碼(logout.py)
import urllib2 import urllib class Loginer(): def __init__(self, username, password): self.loginUrl = 'http://202.204.105.195:803/srun_portal_pc.php?ac_id=1&' #單引號內替換為校園網登錄網絡地址 self.username = username self.password = password self.openner = urllib2.build_opener() def login(self): postdata = { 'username': self.username, 'info': '', 'action': 'auto_logout', 'usr_ip': '202.204.105.195' } postdata = urllib.urlencode(postdata) myRequest = urllib2.Request(url=self.loginUrl, data=postdata) if(str(self.openner.open(myRequest).read()).find('font-weight:bold;color:orange')!=-1): print 'logout successfully'
def main(): file=open('temp_username.dat','r') username=file.readline() print username l = Loginer(username,'') l.login() if __name__ == '__main__': main() print 'done'
將源代碼copy下來,分別保存成connet.py和logout.py兩個文件。然后copy至服務器運行:(注意替換自己文件所在目錄)
scp connect.py lthpc@202.204.110.243:network/connet.py
scp logout.py lthpc@202.204.110.243:network/logout.py
4.網絡測試
完成以上步驟后可以通過 ping www.baidu.com測試是否成功配置。