想学习如何手动安装不准点这里
https://blog.csdn.net/qwefyjwww/article/details/83312707
复制脚本一,粘贴到以.sh结尾的的空白文件内,chmod +x 给权限后输入路径启动
脚本一在有双网卡的模拟路由器虚拟机上运行
#!/bin/bash
systemctl start firewall &>/dev/null
firewall-cmd --add-masquerade &>/dev/null
echo -e "\033[31m 火墙策略添加完成,以下输入为空时不改变原设置 \033[0m"
read -p "请输入与真机相同网段的网卡名:" name1
read -p "请输入上一步选择的网卡的ip:" ip1
read -p "请输入与真机不同网段,与客户端相同网段的网卡名:" name2
read -p "请输入上一步选择的网卡的ip:" ip2
read -p "请输入真机ip:" ip3
read -p "请输入所在地运营商提供的dns地址,无输入默认为114.114.114.114(陕西电信):" ip4
echo -e "DEVICE=$name1\nBOOTPROTO=none\nNOBOOT=yes\nIPADDR=$ip1\nPREFIX=24\nNAME=$name1" > /etc/sysconfig/network-scripts/ifcfg-$name1
systemctl restart network &>/dev/null && echo "完成" || echo -e "\033[31m 失败,请检查日志 \033[0m"
echo -e "DEVICE=$name2\nBOOTPROTO=none\nNOBOOT=yes\nIPADDR=$ip2\nPREFIX=24\nNAME=$name2" > /etc/sysconfig/network-scripts/ifcfg-$name2
systemctl restart network &>/dev/null && echo "完成" || echo -e "\033[31m 失败,请检查日志 \033[0m"
sed '/^GATEWAY/d' -i /etc/sysconfig/network-scripts/ifcfg-$name1 &>/dev/null
echo -e "GATEWAY=$ip3" >> /etc/sysconfig/network-scripts/ifcfg-$name1
systemctl restart network &>/dev/null && echo "完成" || echo -e "\033[31m 失败,请检查日志 \033[0m"
[ -z "$ip4" ] && {
sed '/^DNS1/d' -i /etc/sysconfig/network-scripts/ifcfg-$name1 &>/dev/null
echo -e "DNS1=114.114.114.114" >> /etc/sysconfig/network-scripts/ifcfg-$name1
systemctl restart network &>/dev/null && echo "完成" || echo -e "\033[31m 失败,请检查日志 \033[0m"
}||{
sed '/^DNS1/d' -i /etc/sysconfig/network-scripts/ifcfg-$name1 &>/dev/null
echo -e "DNS1=$ip4" >> /etc/sysconfig/network-scripts/ifcfg-$name1
systemctl restart network &>/dev/null && echo "完成" || echo -e "\033[31m 失败,请检查日志 \033[0m"
}
forward=`sysctl -a | grep ip_forward | awk '{print $3}' | sed -n "1p"`
[ "$forward" -eq "0" ] && {
read -p "你的内核需要修改
此操作需要重启电脑
按y开始重启
重启后再次运行一次脚本
出现输入提示时ctrl+c退出即可
此后所有服务搭建完成
无输入视为退出:" yes
case $yes in
y)
sed '/net.ipv4.ip_forward=0/d' /etc/sysctl.conf
echo "net.ipv4.ip_forward=1">> /etc/sysctl.conf
reboot
;;
*)
echo -e " \033[31m 服务搭建未完成 \033[0m "
exit 1
;;
esac
}
echo -e "\033[31m 所有服务搭建完成 \033[0m"
exit 0
以下为脚本二在,不能联网的客户端运行
#!/bin/bash
read -p "选择
1.当前未安装开始安装
2.当前已安装开始测试追踪数据转换:" ch
case $ch in
1)
read -p "设置无法联网的网卡:" name
read -p "输入无法联网的ip:" ip
read -p "输入模拟路由器的主机的ip:" ip1
read -p "输入本地运营商的dns地址,无输入默认为陕西电信114.114.114.114:" ip2
[ -z "$ip2" ] && {
echo -e "DEVICE=$name\nBOOTPROTO=none\nNOBOOT=yes\nIPADDR=$ip\nPREFIX=24\nNAME=eth0\nGATEWAY=$ip1\nDNS1=114.114.114.114" > /etc/sysconfig/network-scripts/ifcfg-$name
}||{
echo -e "DEVICE=$name\nBOOTPROTO=none\nNOBOOT=yes\nIPADDR=$ip\nPREFIX=24\nNAME=eth0\nGATEWAY=$ip1\nDNS1=$ip2" > /etc/sysconfig/network-scripts/ifcfg-$name
}
systemctl restart network &>/dev/null && echo "完成" || echo -e "\033[31m 失败,请检查日志 \033[0m"
read -p "按y查看看数据传递过程,无输入视为退出:" yes
case $yes in
y)
read -p "输入追踪的ip或域名:" www
echo -e "\033[31m 默认追踪30次地址转换自动退出脚本,只显示与我们有关的3次地址转换,请按crtl+c提前退出,网络延迟会影响显示时间\033[0m"
traceroute $www | sed -n "2,4p"
;;
*)
exit 0
;;
esac
;;
2)
read -p "输入追踪的ip或域名:" www
echo -e "\033[31m 默认追踪30次地址转换自动退出脚本,只显示与我们有关的3>次地址转换,请按crtl+c提前退出,网络延迟会影响显示时间\033[0m"
traceroute $www | sed -n "2,4p"
;;
esac
复制好了没,浪起来!
###################真机端#############
在确定能联网的真机上输入以下命令添加火墙策略
firewall-cmd --add-masquerade
#########模拟路由器的虚拟机端#############
在模拟路由器的虚拟机上添加两块网卡,运行脚本
按提示输入网卡名、不同网段的ip、能联网的真机ip和dns解析地址
当检测内核时可能需要修改,根据提示躺好就行
重启后手动运行一次脚本
出现以下提示ctrl+c退出
此后路由器端所有服务搭建完成
#########无法联网的客户端####################
运行脚本
未搭建服务选1
搭建了想看效果选2
按提示输入网卡名、ip、dns
出现完成时所有服务搭建完成
输入y查看数据传递
怎么样舒服不