Ubuntu18.04server 双网卡,开机自动设置路由并启动校园网网络认证程序(Ubuntu开机自动设置路由,开机自启动应用程序)
本博主为高龄在校生,实验室服务器需要假期时候无人守候也能实现自动登录校园网从而实现网络连接,以使实验室同学在家也可以使用校园vpn连接服务器。
由于假期时候实验室没有人,而假期实验室可能会出现断电断网问题(假期一般需要定期检修校园的电力和网络),虽然服务器设置了来电自启动但是网络连接却是不好解决的问题,因此给出了下面的自己设计的解决方案。
首先,给出校园网网络自连接的程序(自动登录校园网):
参看: https://www.cnblogs.com/devilmaycry812839668/p/14201947.html
东北某海滨城市的某高校的某分校区的校园网登录程序,(python3, 模拟浏览器的登入方式)
已经写好的代码:(python3)

#encoding:UTF-8
from urllib.parse import urlencode
from urllib.request import urlopen
import urllib
import os
import sys
import getpass if __name__ == "__main__":
#username=input("please input your username\nUsername: ")
#print "please input your password"
#password=getpass.getpass()
username = "123456"
password = "123456" opener=urllib.request.build_opener(urllib.request.HTTPRedirectHandler(), urllib.request.HTTPHandler(debuglevel=0))
opener.addheaders=[('User-agent', "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)")]
url='http://172.20.20.1:801/srun_portal_pc.php?ac_id=3&' try:
response=opener.open(url, urlencode({"ac_id":"3", "action":"login", "nas_ip":"", "password":password, "save_me":"1", "url":"", "user_ip":"", "user_mac":"", "username":username }).encode("utf-8")) xxx_print = response.read().decode("utf-8") if xxx_print.find(u'网络已连接') != -1:
print( '\n\n\n' )
print( '##################################' )
print( '您已经成功登录' )
print( '##################################' )
print( '\n\n\n' )
else:
print( '\n\n\n' )
print( '##################################' )
print( '抱歉,您登录失败' )
print( '##################################' )
print( '\n\n\n' )
print( xxx_print )
except Exception as e:
print( '\n\n\n' )
print( '##################################' )
print( "网络联通有误, 请检测网络是否可达" )
print( '##################################' )
print( e )
修改用户名和密码即可以用。
打印服务器网络配置:
ifconfig

docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:ab:11:7b:44 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 enp7s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.105.219.170 netmask 255.255.0.0 broadcast 10.105.255.255
inet6 fe80::2e4d:54ff:fe44:a14b prefixlen 64 scopeid 0x20<link>
inet6 2001:da8:a800:af00:2e4d:54ff:fe44:a14b prefixlen 64 scopeid 0x0<global>
ether 2c:4d:54:44:a1:4b txqueuelen 1000 (Ethernet)
RX packets 117350 bytes 10936594 (10.9 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1222 bytes 122427 (122.4 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0xc6400000-c647ffff enp8s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.11.66 netmask 255.255.255.0 broadcast 192.168.11.255
inet6 fe80::2e4d:54ff:fe44:a14c prefixlen 64 scopeid 0x20<link>
inet6 2001:da8:a800:af00:2e4d:54ff:fe44:a14c prefixlen 64 scopeid 0x0<global>
ether 2c:4d:54:44:a1:4c txqueuelen 1000 (Ethernet)
RX packets 115510 bytes 10489267 (10.4 MB)
RX errors 910 dropped 0 overruns 0 frame 736
TX packets 392 bytes 40113 (40.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0xc6300000-c637ffff lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 349 bytes 28888 (28.8 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 349 bytes 28888 (28.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
可以看到服务器有两个网卡,由于是Ubuntu18.04server 系统,参看服务器的网络配置:
vim /etc/netplan/50-cloud-init.yaml

# This file is generated from information provided by
# the datasource. Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
ethernets:
enp7s0:
dhcp4: true
nameservers:
addresses:
- 202.118.66.6
search: []
optional: true enp8s0:
addresses:
- 192.168.11.66/24
gateway4: 192.168.11.254
nameservers:
addresses:
- 202.118.66.6
search: []
optional: true version: 2
可以看到服务器是两个网卡,一个是动态ip的,一个是静态ip的,其中由于实验室路由器损坏导致静态ip无法联网只能使用动态ip联网,因此服务器开机时需要设置路由使服务器的网关为使用动态ip的网卡(不然系统会默认使用静态ip网卡对应的网关作为默认网关,导致无法联网),这个无法联网的静态ip对应的网卡主要用于连接内网打印机等设备。
因此,这里我们需要实现的功能就是服务器开机自动设置路由,然后自动启动网络登录程序。
这里的解决方案是写一个自启动的脚本,把网络路由设置和自启动登录脚本的设置写入进去:
自启动脚本编写方式参考:
/etc/init.d 开机自动执行脚本
编辑自启动脚本:
sudo vim /etc/init.d/keep_alive
#! /bin/sh ### BEGIN INIT INFO
# Provides: sshd
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: OpenBSD Secure Shell server
### END INIT INFO route del default gw 192.168.11.254 nohup python3 /home/xxxxxx/keep_alive.py 1>/tmp/network_login.log 2>&1 & exit 0
其中:
route del default gw 192.168.11.254 是删除掉静态ip的网关,这样所有访问都可以通过动态ip的网卡出去,而且不影响使用静态ip网卡来访问局域网的打印机。
nohup python3 /home/xxxxxx/keep_alive.py 1>/tmp/network_login.log 2>&1 & 该语句是设置网络登录脚本启动后把输出打印到日志中
编写好 /etc/init.d/ 下面的 keep_alive 自启动脚本后还需要给其执行权限并更新到系统中:
赋给执行权限:
sudo chmod a+x /etc/init.d/keep_alive
更新到系统中:
sudo update-rc.d keep_alive defaults 90
从系统中移除:
sudo update-rc.d -f keep_alive remove
配置结束。
PS:
有的时候还需要额外执行命令:systemctl enable keep_alive 才可以实现自启动服务。
=================================================
重启电脑可以成功设定路由并自动登录校园网。
Ubuntu18.04server 双网卡,开机自动设置路由并启动校园网网络认证程序(Ubuntu开机自动设置路由,开机自启动应用程序)的更多相关文章
- VirtualBox中使用双网卡实现CentOS既能上网(校园网)也能使用SSHclient
近期在虚拟机中使用linux操作系统,之前使用NAT方式上网,能够畅通无阻.可是使用SSHclient连接linux虚拟机就必须为其指定固定的IP地址.依照网上的配置方法使用桥接方式,这种方式是能够的 ...
- windows server 2012 双网卡配置
别用route 命令!!!!!! 在使用最新版的windows server 2012的时候,当存在两个或者多个网段的时候,就可以采用双网卡的方式来添加和配置路由.具体的设置方法如下: 网段1 19 ...
- Ubuntu 16.04设置rc.local开机启动命令/脚本的方法
Ubuntu 16.04设置rc.local开机启动命令/脚本的方法 Ubuntu 16.04设置rc.local开机启动命令/脚本的方法(通过update-rc.d管理Ubuntu开机启 ...
- 转:CentOS 7使用nmcli配置双网卡聚合LACP
进入CentOS 7以后,网络方面变化比较大,例如eth0不见了,ifconfig不见了,其原因是网络服务全部都由NetworkManager管理了,下面记录下今天下午用nmcli配置的网卡聚合,网络 ...
- CentOS 7使用nmcli配置双网卡聚合
进入CentOS 7以后,网络方面变化比较大,例如eth0不见了,ifconfig不见了,其原因是网络服务全部都由NetworkManager管理了,下面记录下今天下午用nmcli配置的网卡聚合,网络 ...
- 华硕笔记本怎么设置u盘启动(两种方法)
华硕笔记本怎么设置u盘启动(两种方法) 华硕笔记本怎么设置u盘启动.我想用U盘安装系统但是 我不知道如何设置U盘启动,那么该如何设置呢?下面和大家分享一下我的经验,希望能够帮到大家.如果你的系统是预装 ...
- U盘装系统系列二—-如何设置U盘启动
老毛桃U盘启动制作好之后,如何设置U盘启动呢?我的是华硕的电脑,开机后按F2进入BIOS设置(不同主板可能不一样,比如有的是按向下键或者Del键,可以在网上查下看看),按Tab键选中Boot:按向下键 ...
- WebStrom配置多个项目的Dweployment时,设置默认的启动配置
有时候,我们在WebStrom中打开多个项目,但是每个项目可能的Deployment的配置不同,所以每次在项目中时,可能打开的网页并不对.所以需要设置默认的启动的Deployment.下面的内容是设置 ...
- web服务器 双网卡 路由 设置
最近在装服务器的时候,遇到一个问题,就是这个服务器本身是一个web服务器,但它上面装有一个局域网数据交换软件,还需要访局域网. 但软件装上去了,局域网怎么也不能访问,后来了解到是因为双网卡的原因,需要 ...
- win7双网卡走哪个网卡路由设置
有没有软件能做这个我还真不知道.说说我的做法吧: 单位里无线是可以访问Internet的,有线是用来访问公司内部系统的. 默认的54M无线网络和100M的有线网络,系统在选择默认路由的时候肯定是选择有 ...
随机推荐
- Vue学习:4.v-model使用
第一节算是对v-model的粗略了解,仅仅是将input的输入与Vue 实例的数据之间双向绑定.这一节将更详细的了解v-model在不同表单元素中的使用. v-model实例:找对象 实现功能: 使用 ...
- 汽车生产车间PMC组态画面应该怎么设计
通常我们所说的汽车制造四大工艺指的是:冲压.焊装.涂装.总装.一般来说,在汽车制造工厂,这四大工艺分别对应四大车间.本文结合一些实际应用案例,向大家展示一下 TopStack 在汽车制造业各工艺车间中 ...
- 16-Docker核心概念
Docker镜像 Docker 镜像类似于操作系统镜像,可以将它理解为一个只读的模板. 例如,一个镜像可以包含一个基本的操作系统环境,里面仅安装了Apache应用程序,可以把它称为一个Apache镜像 ...
- 解决python命令行报错问题
解决Python报错Failed calling sys.__interactivehook__ 报错截图 可以看到主要的报错信息 File "D:\Python\Anaconda3\lib ...
- Express手稿
- 5 pdf页码跳转失效
PC端网页查看pdf时,输入非数字页码回车后,页码跳转功能失效
- 常用IDE(开发工具)
一.开发工具 Visual Studio Microsoft Visual Studio(简称VS)是微软公司提供的IDE,可以在VS上编写C.C++.C#等多种语言的项目,所写的代码适用于微软支持的 ...
- tp5命名规范
tp5中对类,文件名,函数和方法的命名规范如下: 类名和类文件名保持一致,并统一采用驼峰法命名(首字母大写) 类的命名采用驼峰法,并且首字母大写,例如 User.UserType,不需要添加contr ...
- Java21的虚拟线程Virtual Thread初体验
我们之前使用的是操作系统平台的线程,就称之为"系统线程"吧.虚拟线程是JDK维护的,原理跟WebFlux的底层实现差不多,都是工作线程分离. 要使用虚拟线程,需要使用JDK21以上 ...
- SQL Server 锁(LOCK)大全
一.锁(LOCK)知识及应用 1.1 锁的基础知识 在任何多用户的数据库中,必须有一套用于数据修改的一致的规则.对于真正的事务处理型数据库,当两个不同的进程试图同时修改同一份数据时,数据库管理系统(D ...