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的有线网络,系统在选择默认路由的时候肯定是选择有 ...
随机推荐
- HttpServletRequest获取header参数 sign
HttpServletRequest获取header参数 sign //从请求头中获取参数 private static Map<String, String> getHeaders(Ht ...
- 消息sms 邮箱/手机号/push发送的方案 & 定时任务xxlJob灵活度 & 泛型和发送的模板类设计
消息sms 邮箱/手机号/push发送的方案 & 定时任务xxlJob灵活度 & 泛型和发送的模板类设计 1.消息sms 邮箱/手机号/push发送的方案 1.判断收件人地址是否为空, ...
- error while loading shared libraries: liblzma.so.5: cannot open shared object file: No such file or directory
CentOS6安装mongo报错 error while loading shared libraries: liblzma.so.5: cannot open shared object file: ...
- [OC]一个括号新建一个类
[OC]一个括号新建一个类 特别说明 以下代码仅仅用于说明用途,命名也不是特别规范,小朋友不要模仿哦. 前言 在iOS开发中,我们会经常用到这么一段代码: UIView *myView = [UIVi ...
- openfly:基于nginx的4层代理管理平台
简介 作者:京城郭少 基于nginx的4层代理管理平台 支持的功能: 被动健康检查 白名单 include导入文件 哈希 backup冗余互备 weight权重 注释 ...... 部署openfly ...
- EthernetIP IO从站设备数据 转opc ua项目案例
1 案例说明 设置网关采集EthernetIP IO设备数据 把采集的数据转成opc ua协议转发给其他系统. 2 VFBOX网关工作原理 VFBOX网关是协议转换网关,是把一种协议转换成另外一种协议 ...
- 在Python中输出当前文件名和行号
在Python中输出当前文件名和行号 用 inspect 库 info = inspect.currentframe() print('DEBUG!! ',info.f_code.co_filenam ...
- Linux修改dmesg 显示大小
背景 由于在调试的时候没有串口,而通过dmesg打印的内容发现其中有截断的现象. 因此为了方便调试.将有关的缓冲区加大. 原理 Linux内核中打印内核消息时用到了一个环形缓冲区. 这个缓冲区的大小由 ...
- 基于SSD202D芯片的最小嵌入式Linux开发板来了 仅需99元 入门嵌入式Linux必选
- JavaWeb踩坑记录
org.apache.ibatis.binding.BindingException: Parameter 'XXXX' not found. 或 There is no getter for pro ...