- 论坛徽章:
- 0
|
停止vmware的dhcp
运行vmware-config.pl脚本, 建立hostonly或nat网络后, vmware总会在相应的网络接口上运行dhcp服务器, 为客户机分配ip地址. 这个功能有时候很有用, 有时候确很烦人. 本文介绍了在Linux下禁用vmware dhcp的方法, vmware版本是VMware Server 1.0.1 build-29996.
/etc/init.d/vmware通过/usr/lib/vmware/net-services.sh完成网络服务的设置. dhcp的起动和关闭由如下函数来实现:
- vmware_start_dhcpd() {
- local vHostIf="$1" # IN
- # The daemon already logs its output in the system log, so we can safely
- # trash it
- cd "$vmdb_answer_BINDIR" && "$vmdb_answer_BINDIR"/"$dhcpd" \
- -cf "$vmware_etc_dir"/"$vHostIf"/dhcpd/dhcpd.conf \
- -lf "$vmware_etc_dir"/"$vHostIf"/dhcpd/dhcpd.leases \
- -pf /var/run/"$dhcpd"-"$vHostIf".pid "$vHostIf" >/dev/null 2>&1
- }
- # Stop a DHCP server on a private IP network
- vmware_stop_dhcpd() {
- local vHostIf="$1" # IN
- if vmware_stop_pidfile /var/run/"$dhcpd"-"$vHostIf".pid; then
- rm -f /var/run/"$dhcpd"-"$vHostIf".pid
- fi
- }
复制代码
如果需要关闭所有网卡上的dhcp, 则只需要将以上代码段中的执行部分注释, 修改为
- vmware_start_dhcpd() {
- local vHostIf="$1" # IN
- # The daemon already logs its output in the system log, so we can safely
- # trash it
- # cd "$vmdb_answer_BINDIR" && "$vmdb_answer_BINDIR"/"$dhcpd" \
- # -cf "$vmware_etc_dir"/"$vHostIf"/dhcpd/dhcpd.conf \
- # -lf "$vmware_etc_dir"/"$vHostIf"/dhcpd/dhcpd.leases \
- # -pf /var/run/"$dhcpd"-"$vHostIf".pid "$vHostIf" >/dev/null 2>&1
- }
- # Stop a DHCP server on a private IP network
- vmware_stop_dhcpd() {
- local vHostIf="$1" # IN
- # if vmware_stop_pidfile /var/run/"$dhcpd"-"$vHostIf".pid; then
- # rm -f /var/run/"$dhcpd"-"$vHostIf".pid
- # fi
- }
复制代码
我写了下面的代码用来起动和关闭部分网卡上的dhcp, 其中vDhcpIf保存了要起动dhcp的虚拟网卡的列表, 用空格分开.
- #vDhcpIf define interface on which dhcp run, interfaces are seprated with space
- vDhcpIf="vmnet1 vmnet2"
- # Start a DHCP server on a private IP network
- vmware_start_dhcpd() {
- local vHostIf="$1" # IN
- # The daemon already logs its output in the system log, so we can safely
- # trash it
- if echo $vDhcpIf|tr ' ' '\n' |grep $vHostIf >/dev/null
- then
- cd "$vmdb_answer_BINDIR" && "$vmdb_answer_BINDIR"/"$dhcpd" \
- -cf "$vmware_etc_dir"/"$vHostIf"/dhcpd/dhcpd.conf \
- -lf "$vmware_etc_dir"/"$vHostIf"/dhcpd/dhcpd.leases \
- -pf /var/run/"$dhcpd"-"$vHostIf".pid "$vHostIf" >/dev/null 2>&1
- fi
- }
- # Stop a DHCP server on a private IP network
- vmware_stop_dhcpd() {
- local vHostIf="$1" # IN
- if echo $vDhcpIf|tr ' ' '\n' |grep $vHostIf >/dev/null
- then
- if vmware_stop_pidfile /var/run/"$dhcpd"-"$vHostIf".pid; then
- rm -f /var/run/"$dhcpd"-"$vHostIf".pid
- fi
- fi
- }
复制代码
也可以设置vDhcpIf=""使得dhcp不在任何网卡上启动
http://www.cublog.cn/u/7667/showart.php?id=170212 |
|