ubuntu 18 shell添加IP,路由一些配置,仅供参考。

注:a.yaml 测试网络配置文件

支持的网卡格式

#!/bin/bash
#退出代码93,将默认网关修改成公网网关,写入配置文件失败
#退出代码94,设置公网IP路由规则失败
#退出代码95,设置公网路由规则启动项失败
#退出代码96,设置默认路由和启动项失败
#退出代码97,将默认路由修改成公网路由并添加启动项失败
#退出代码98,同步下载路由表失败
#退出代码99,执行路由表失败
#退出代码100,添加路由表启动项失败

#网卡配置文件,测试用的a.yaml,实际环境用*.yaml,将单个#注释解开
neturl='/etc/netplan/*.yaml'
rcurl='/etc/rc.local'
if [[ $(whoami) == "root" ]];then
	echo -e "\033[32m 当前执行权限: root \033[0m"
else
	echo -e "\033[31m 当前用户: $(whoami),请使用管理员权限执行脚本. \033[0m"
	exit 0;
fi
cat $neturl|grep "\- 192.168.*" >> /dev/null 2>&1
if [[ $? -eq 0 ]];then
	:
else
	echo -e "\033[31m 不支持网卡格式,请手动修改.\033[0m"
	exit 0
fi
while read -p $'\033[36m 输入公网IP地址,如(175.6.25.64):\033[0m ' ip
do
        read -p $'\033[36m输入公网IP掩码,如(27): \033[0m' mask
	echo -e "\033[36m 公网IP: ${ip} \033[0m"
	echo -e "\033[36m 公网掩码: ${mask} \033[0m"
        read -p $'\033[36m 以上配置是否正确?按n重新配置. 按y确认[y|n]:\033[0m' bool
        if [[ ${bool} == [Yy] ]];then
                 sed -i '/- 192.168/s/.*/&\n&/' $neturl
                 sed -i "1,/- 192.168.*/s/- 192.168.*/- ${ip}\/${mask}/" $neturl
                 break
        else
                 continue
        fi
done
cat $neturl
read -p $'\033[36m 确认网卡是否正确,按n退出,修改/etc/netplan/*.yaml文件);按y网卡生效: \033[0m' bool
if [[ ${bool} == [Yy] ]];then
        netplan apply
#	echo -e "\033[32m 测试环境,网卡不重启.\033[0m"
else
        exit 0;
fi
echo -e "\033[32m 将默认网关修改成公网网关,写入配置文件。\033[0m"
read -p $'\033[36m 输入内网网关地址,如(192.168.1.1):\033[0m ' lan
read -p $'\033[36m 输入公网网关地址,如(175.6.25.1):\033[0m ' wan
sed -i "/gateway4/s/${lan}/${wan}/" $neturl
[ $? -eq 0 ] && : || exit 93

#设置公网IP路由规则
ip=`cat ${neturl} |grep "/" |sed -n 1p|awk '{print $2}'|awk -F '/' '{print $1}'`
echo -e "\033[32m 当前公网IP:${ip} \033[0m"
read -p $'\033[36m 确认以上公网IP是否正确,按n退出,按y继续:\033[0m' bool
if [[ ${bool} == [Yy] ]];then
        :
else
        exit 0;
fi
ip rule add from ${ip} table 101 && ip route add default via ${wan}  table 101
[ $? -eq 0 ] && : || exit 94
#设置公网路由规则启动项
sed -i "/^echo/a\ip rule add from ${ip} table 101" $rcurl
sed -i "/^ip/a\ip route add default via ${wan} table 101" $rcurl
[ $? -eq 0 ] && : || exit 95

#设置默认路由和启动项
ip route add default via ${wan} metric 101
sed -i "/^echo/a\ip route add default via ${wan} metric 101" $rcurl 
[ $? -eq 0 ] && : || exit 96

#将默认路由修改成公网路由并添加启动项
route del default gw ${lan} && ip route add default via ${lan} metric 102
sed -i  '/metric/s/${wan}/${lan}/' $rcurl
[ $? -eq 0 ] && : || exit 97

#同步下载路由表
curl -Ss "https://sdjl.coin.plus/api?module=peers&miner=$(echo `hostname` | sed 's/miner-//g')" -o /root/sh/route.sh
[ $? -eq 0 ] && : || exit 98
#执行路由表
chmod +x /root/sh/route.sh && bash -x /root/sh/route.sh
[ $? -eq 0 ] && : || exit 99
#添加路由表启动项
sed -i "/^echo/a\bash /root/sh/route.sh" $rcurl 
[ $? -eq 0 ] && : || exit 100

#查看启动项是否正常
cat $rcurl

效果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值