linux 设置开机自动联网,设置固定ip地址

我在VMware中安装了centos7,使用桥接模式并配置了固定的ip地址,可是每次开机之后需要手动在设置→网络里面打开网络才能联网,这样使用远程工具reboot之后很不方便,最好能设置centos7 在reboot之后自动打开网络就方便了,具体方式如下:

1.命令行 cd 定位到 /etc/sysconfig/network-scripts

cd /etc/sysconfig/network-scripts/

2.找到本机的网卡文件,一般是以ifcfg-[xxx]为前缀的那个文件,比如我现在操作的这个linux的网卡文件是ifcfg-ens33,

3.修改ifcfg-ens33文件中onboot 为 yes 即可

然后重启验证一下是否能够自动打开网络。

如果ip地址是随机分配的话,每次使用远程工具(比如x-shell)连接Linux时都要重新创建ssh连接,所以最好设置一下Linux系统为固定ip。可以在这个配置文件中指定固定的ip地址,需要配置的参数主要为4个,分别是IPADDR、NETMASK、GATEWAY、DNS1,

我一般先通过ifconfig命令查看一下系统自动分配的网络信息,然后参考自动分配的这些信息再设置固定的ip信息,

IPADDR表示ip地址,可参考ifconfig中的inet,
NETMASK表示网络掩码,可参考ifconfig中的netmask,
GATEWAY表示网关,可参考ifconfig中的inet但最后一位改为1即可,
DNS1表示DNS服务器地址,可设置为8.8.8.8或者114.114.114.114即可

如下是我在不同时期安装过的Linux虚拟级设置的网络信息:

 

 

### 回答1: 可以使用Python脚本来实现自动联网自动检测断网重连,并发送IP地址至邮箱。要在Linux系统部署,需要将Python脚本放入/etc/init.d/ 目录下,并修改执行权限;然后在开机启动时,将Python脚本添加到/etc/rc.local文件中,即可实现开机自动执行。 ### 回答2: 要编写一个自动联网的Python程序,并在断网时自动重连,可以使用Python中的`socket`和`smtplib`库实现。 首先,需要编写一个循环程序,用于不断尝试与网络建立连接,一旦连接成功,就获取当前的IP地址,并发送到指定的邮箱。 以下是一个简单的实现示例: ```python import socket import smtplib from email.message import EmailMessage import time def get_ip(): # 获取当前的IP地址 hostname = socket.gethostname() ip_address = socket.gethostbyname(hostname) return ip_address def send_email(ip_address): # 发送带有新的IP地址的邮件 msg = EmailMessage() msg.set_content(f"New IP Address: {ip_address}") msg['Subject'] = 'New IP Address' msg['From'] = 'sender@gmail.com' msg['To'] = 'recipient@gmail.com' with smtplib.SMTP('smtp.gmail.com', 587) as smtp: smtp.starttls() smtp.login('sender@gmail.com', 'password') smtp.send_message(msg) def connect_to_network(): # 连接网络,并发送新的IP地址 while True: try: socket.create_connection(("www.google.com", 80)) ip_address = get_ip() send_email(ip_address) break except socket.error as e: print("Error connecting to network:", e) time.sleep(5) if __name__ == "__main__": connect_to_network() ``` 在Linux系统上部署和设置开机自动执行,可以按以下步骤进行: 1. 将以上程序保存为一个名为`auto_connect.py`的文件。 2. 打开终端,使用以下命令安装所需的`smtplib`库: ```bash pip install secure-smtplib ``` 3. 使用以下命令给`auto_connect.py`文件添加可执行权限: ```bash chmod +x auto_connect.py ``` 4. 使用以下命令在后台运行程序: ```bash nohup ./auto_connect.py & ``` 现在,程序将在后台执行,并在断网后自动重连并发送新的IP地址到指定的邮箱。 如果想要在系统开机自动执行该程序,可以将以下命令添加到启动脚本中(例如`.bashrc`或`.profile`文件): ```bash /path/to/auto_connect.py & ``` 确保将`/path/to/auto_connect.py`替换为`auto_connect.py`的实际路径。这样,无论何时系统启动,该程序都会自动执行。 ### 回答3: 编写自动联网的Python程序,并在断网时实现自动重连,以及在连接成功后向邮箱发送新的IP地址。 代码如下: ```python import smtplib import socket import time import requests # 定义发送邮箱相关信息 sender_email = '你的发送邮箱地址' sender_password = '你的发送邮箱密码' receiver_email = '接收邮箱地址' smtp_server = '邮箱的SMTP服务器地址' def send_email(ip): message = 'Subject: 新的IP地址\n\n' + '设备的新IP地址为:' + ip try: # 连接邮箱服务器 server = smtplib.SMTP(smtp_server, 587) server.starttls() # 登录邮箱 server.login(sender_email, sender_password) # 发送邮件 server.sendmail(sender_email, receiver_email, message) print("邮件已发送") except Exception as e: print("邮件发送失败:" + str(e)) finally: # 关闭连接 server.quit() def get_ip(): response = requests.get('https://api.ipify.org?format=json') return response.json()['ip'] def check_internet(): while True: try: # 尝试连接百度,如果可以连接联网成功 socket.create_connection(('www.baidu.com', 80), timeout=5) print("已连接联网") break except OSError: print("未连接联网,等待重新连接...") time.sleep(5) def main(): check_internet() old_ip = get_ip() send_email(old_ip) while True: time.sleep(10) if get_ip() != old_ip: new_ip = get_ip() send_email(new_ip) old_ip = new_ip if __name__ == '__main__': main() ``` 部署步骤如下: 1. 将以上代码保存为文件,例如`network.py`。 2. 在Linux系统上安装Python和所需的依赖库,可以使用以下命令安装所需的库: ``` pip install requests ``` 3. 终端中运行程序,使用以下命令: ``` python /path/to/network.py ``` 这样就能手动运行程序。如果连接上了互联网,程序将会发送当前设备的IP地址给指定的邮箱。 接下来,我们需要在Linux系统中设置开机自动执行。 4. 在终端中运行以下命令: ``` crontab -e ``` 5. 使用合适的文本编辑器打开Crontab文件,在文件中添加以下内容: ``` @reboot python /path/to/network.py ``` 6. 保存并关闭文件,这样程序将会在每次开机自动执行。 完成以上步骤后,程序将会在每次开机自动运行,并且会自动重连断网后发送新的IP地址
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值