学院于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测试是否成功配置。
