学院于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 [email protected]:network/connet.py
scp logout.py lthp[email protected]:network/logout.py
4.网络测试
完成以上步骤后可以通过 ping www.baidu.com测试是否成功配置。