今天找到了个NoKVM单IP开NAT挂机宝的教程,先转发一下避免未来有用找不到。单ip挂机宝,如果被ddos,母鸡会直接瘫痪,建议选择高防ip。

前置操作

  1. 首先开一台转发机,设定的ssh密码一定要和宿主机ssh密码一致。
  2. 强制关闭这台转发机器电源(用不到了但是也不可以删除)。
  3. 登录宿主机执行 virsh autostart --disable **** (****是你第一个机器名字 比如我们测试机名字是:ecs-heTqk 就输入 virsh autostart --disable ecs-heTqk) (取消开机自启动)
  4. ssh登录主控,连接control数据库,修改ip_address表,找到分配给这台转发机的ip,修改为宿主机的ip (这样 ip 和 密码都和宿主机一致了 也就相当于ssh远程连接到宿主机执行命令)

数据库操作

  1. 查看数据库密码 cat /home/wwwroot/control/.envDB_PASSWORD 字段就是数据库密码
  2. 连接数据库 mysql -u root -p,然后输入上面查询到密码
  3. 进入到control表 use control; (;一定要输入)
  4. 修改转发机ip为宿主机ip查看表数据:

select * from ip_address;
update `ip_address` set `ip`='宿主机ip' where `id`='xxx';

(Id=xxx xxx是IP ID 我是刚搭建的所以ID是 1 update ip_address set ip='宿主机ip' where id=1;)

脚本操作

(以下操作还在实验中 ,上面的成功了 但是不能远程 机器里面能上网)

  1. 在宿主机虚拟机数据目录中(/home/nokvm/resource/转发机名/change.sh),拷贝转发机目录的change.sh 并修改其内容 (网段不一定要按照我的来 可以自己划分网段,使vps的网关指定为br0:0配置的ip地址)

cd /home/nokvm/resource/ecs-xxx/
cp change.sh  modify.sh

modify.sh文件修改过的样例:

ncf2=/etc/sysconfig/network-scripts/ifcfg-br0:0
/usr/bin/rm -rf $ncf2
/usr/bin/echo DEVICE=br0:0 >>$ncf2
/usr/bin/echo TYPE=Ethernet >>$ncf2
/usr/bin/echo BOOTPROTO=static >>$ncf2
/usr/bin/echo IPADDR=172.16.0.1 >>$ncf2
/usr/bin/echo NETMASK=255.255.248.0 >>$ncf2
/usr/bin/echo ONBOOT=yes >>$ncf2
systemctl restart network
ulimit -n 65535
/usr/bin/echo 'root soft nofile 65535' >> /etc/security/limits.conf
/usr/bin/echo 'root hard nofile 65535' >> /etc/security/limits.conf
/usr/bin/echo '* soft nofile 65535' >> /etc/security/limits.conf
/usr/bin/echo '* hard nofile 65535' >> /etc/security/limits.conf
/usr/bin/echo '* soft nproc 65535' >> /etc/security/limits.conf
/usr/bin/echo '* hard nproc 65535' >> /etc/security/limits.conf
/usr/bin/echo '* soft nofile 65535' >> /etc/security/limits.conf
/usr/bin/echo '* hard nofile 65535' >> /etc/security/limits.conf
/usr/bin/echo net.ipv4.ip_forward=1 >> /etc/sysctl.conf
/usr/sbin/sysctl  -p
/usr/bin/wget -O /root/iptables-1.4.21-28.el7.x86_64.rpm http://down.tasiyun.com/soft/iptables-1.4.21-28.el7.x86_64.rpm
/usr/bin/wget -O /root/iptables-services-1.4.21-28.el7.x86_64.rpm http://down.tasiyun.com/soft/iptables-services-1.4.21-28.el7.x86_64.rpm
/usr/bin/rpm -i /root/iptables-1.4.21-28.el7.x86_64.rpm --nodeps
/usr/bin/rpm -i /root/iptables-services-1.4.21-28.el7.x86_64.rpm --nodeps
systemctl stop firewalld
systemctl disable firewalld
systemctl enable iptables
systemctl start iptables
iptables -F
iptables -X
iptables -Z
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 8088 -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
iptables -I INPUT -p tcp --dport 22 -j ACCEPT
iptables -t nat -A POSTROUTING -s 172.16.0.0/21 -o br0 -j MASQUERADE
iptables -A FORWARD -s 172.16.0.0/21 -o br0 -j ACCEPT
iptables -A FORWARD -d 172.16.0.0/21 -m state --state ESTABLISHED,RELATED -i br0 -j ACCEPT
service iptables save
/usr/bin/wget -O /root/nginx-1.16.0-1.el7.ngx.x86_64.rpm http://down.tasiyun.com/soft/nginx-1.16.0-1.el7.ngx.x86_64.rpm
/usr/bin/rpm -i /root/nginx-1.16.0-1.el7.ngx.x86_64.rpm --nodeps
/usr/bin/rm -rf /etc/nginx/nginx.conf
/usr/bin/rm -rf /root/nginx-1.16.0-1.el7.ngx.x86_64.rpm
/usr/bin/wget -O /etc/nginx/nginx.conf http://down.tasiyun.com/soft/nginx.conf
/usr/bin/systemctl  start nginx
/usr/bin/systemctl  enable nginx

  1. 在母鸡执行修改过的脚本。
  2. 后面就是添加vps的ip池,网关指定br0:0的ip 子网自行划分。

文章转发自:小唐博客-唐联艳,并且由筱雨博客进行部分补充及修正
原文地址:http://www.tlyan.com/post-41.html