如何开启linux 桥接的广播功能

如何开启linux 桥接的广播功能,第1张

使用桥接上网的话需要配置linux系统的IP,具体步骤如下:

1,在命令行模式下或者桌面上进入终端模式,找到/etc/sysconfig/network-script/ifcfg-eth0文件;

2,使用vi打开文件 vi ifcfg-eth0,注意,有的linux系统这个文件可能不带ifcfg前缀。

3,需要改动的:

BOOTPROTO=static

#默认是dhcp,自动获取,自动获取需要将网络模式改桥接模式

需要增加的:

IPADDR=192.168.1.10 #地址是自己设置的

NETMASK=255.255.255.0

修改好之后保存退出。

天在别的朋友电脑拷贝一个RedHat系统,部署到VMware虚拟机以后,连不上网,通过ifconfig命令,查看结果,如图所示:

ifconfig

然后,我想尝试一下,在虚拟机中ping 本地物理机地址,结果如图。

ping localhost

尝试了很多方法,花了2个小时的功夫。终于找到了原因。

以下是我解决问题的步骤,分享出来,帮助大家尽快解决问题,与同样遇到过这个问题的同胞共勉!

总结起来,主要有4步:

1、使用chkconfig iptables off 关闭Linux系统防火墙,并且确保windows防火墙一样关闭。

2、将network选项中默认的“NAT链接方式”改为“网桥链接”,如图所示。

这里写图片描述

3.root 用户登录,修改网络配置文件,命令如下

[root@zb ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0

然后,在window中通过cmd >ipconfig 可以看到 “以太网适配器 VMware Network Adapter VMnet8:” ip地址为 “192.168.139.1”

ipconfig

按照上图的ip地址修改配置文件,红色部分为修改过内容。

DEVICE="eth0" BOOTPROTO="static" // 静态设置ip,下面配置 BROADCAST=192.168.253.255 // 广播地址 *IPADDR=192.168.139.1* // ip地址,手动指定,避免每次动态分配 NETMASK=255.255.255.0 // 子网掩码 NETWORK=192.168.253.0 // 网络号 *GATEWAY=172.18.8.254* // 网关 HWADDR="00:0C:29:8D:07:8E" NM_CONTROLLED="yes" ONBOOT="yes" // 系统启动后,自动启动网卡 TYPE="Ethernet" UUID="73869271-edc7-45a1-bbc7-1691af066ae2"

4、修改完成以后,千万记住,还有一步,重启服务!

[root@zb ~]# service network restart

成功重启以后,测试效果如图:

service network restart

测试结果,使用ifconfig查看,如下图所示,成功显示internet地址:

这里写图片描述

kill函数用来发送信号给指定的进程,在Shell下输入man 2 kill可获取其函数原型如下:#include <sys/types.h>#include <signal.h>int kill(pid_t pid,int sig)该函数的行为与第一个参数pid的取值有关,第二个参数sig表示信号编号。如果pid是正数,则发送信号sig给进程号为pid的进程;如果pid为0,则发送信号sig给当前进程所属进程组里的所有进程;如果pid为-1,则把信号sig广播至系统内除1号进程(init进程)和自身以外的所有进程;如果pid是-1还小的负数,则发送信号sig给属于进程组-pid的所有进程。如果参数sig是0,则kill()仍执行正常的错误检查,但不发送信号。可以利用这一点来确定某进程是否有权向另外一个进程发送信号。如果向一个并不存在的进程发送空信号,则kill()返回-1,errno则被设置为ESRCH。函数执行成功返回0,当有错误发生时则返回-1,错误代码存入errno中,详细的错误代码说明请参考man手册。注意:只有具有root权限的进程才能向其他任一进程发送信号,非root权限的进程只能向属于同一个组或同一个用户的进程发送信号。更简单的方法是通过进程名给进程发信号。比如你的进程名是 aproc,你自己定义一个信号量18,那么:#include <signal.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>char cmd[256]=""int sig = 18char procname[]="aproc"sprintf(cmd, "killall -%d %s\n", sig, procname)system(cmd)就能给特定进程发信号了充分利用system函数,可以简化很多编程工作量,比如查IP地址、查硬盘目录、查磁盘空间等等,编程很麻烦的事都能用system处理,相当于在程序里调用SHELL


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7333655.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-04
下一篇2023-04-04

发表评论

登录后才能评论

评论列表(0条)

    保存