设置静态IPV6地址

现在联通的家用宽带网络基本上都已经支持 IPV6 了,在光猫下的所有设备都可以获取一个 IPV6 的地址,如果想设置每台设备都有自定义和静态的IPV6地址,需要满足以下条件:

  1. 设备连接光猫或者路由器,可以自动获取到一个IPV6地址
  2. 在光猫或者路由器设置页面可以查询到 IPV6 地址前缀

一般在光猫的设置页面可以查询到地址前缀(联通光猫后台,状态,网络侧信息,IPv6 WAN连接信息, 获取前缀 ),比如

# IPV6 Prefix
e145:910a:2222:5400::/60

然后在路由器的设置页面可以获取到 WAN 口的 IPV6 地址和前缀,比如:

# WAN IPV6
e145:910a:2222:5400:8475:1111:3900:2020/64

# IPV6 Prefix
e145:910a:2222:5401::/64

路由器 WAN 口的 IPV6 地址来自于光猫的 DHCPV6 自动分配

我们的网络设备连接到路由器的 LAN 口上,可以获取到路由器的 DHCPV6 分配的 IPV6 地址,比如:

e145:910a:2222:5401:2583:8567:3467:3467/64

设备分配到的 IPV6 地址的前四位是 IPV6 前缀地址,后面四位是根据设备的 MAC 信息生成(或者随机生成)的主机地址,所以我们可以修改后面四位地址来实现静态 IPV6 地址。

CentOS 7 修改方法:

nmcli con mod ens3 ipv6.addresses "e145:910a:2222:5401:0000:0000:0000:0001/128" gw6 "e145:910a:2222:5401::"
nmcli con mod ens3 ipv6.method manual

e145:910a:2222:5401:0000:0000:0000:0001/128
也可以简写为
e145:910a:2222:5401::1/128

gw6 后面跟的是 IPV6 网关,需要填写的是路由器获取到的 IPV6 前缀

然后重启系统,查看新的 IP 地址

reboot

ip a

文章出处:蘑菇博客 www.mogublog.net 转载需联系作者授权

发布日期:
分类:Linux

KVM虚拟化安装OpenWRT

OpenWRT 有 X86_64 的版本,可以安装在 KVM 虚拟化平台上

OpenWRT 系统下载地址:
https://downloads.openwrt.org/releases/19.07.0/targets/x86/64/openwrt-19.07.0-x86-64-combined-ext4.img.gz

解压后导入到 KVM

gunzip openwrt-19.07.0-x86-64-combined-ext4.img.gz

virt-install --name=openwrt --vcpus=1 --ram=512 --os-type=linux --disk path=/kvm/disk/openwrt.img,bus=ide --autostart --network bridge=br0,model=e1000 --network bridge=br0,model=e1000 --import --noautoconsole --graphics vnc,listen=0.0.0.0,password=000000

安装完成后用 VNC 登录设置 root 用户密码和查看 IP 地址,如果是桥接网络,可以设置 lan 口自动获取IP

# /etc/config/network

config interface 'lan'
    option ifname 'eth0'
    option proto 'dhcp'

然后重启系统

发布日期:
分类:Linux

创建私有CA证书签署自定义域名证书

一 创建 CA 证书

#!/bin/bash

mkdir CA
cd CA
openssl genrsa -out ca.key 4096
// openssl req -new -x509 -days 3650 -key ca.key -out ca.crt
openssl req -new -x509 -days 3650 -key ca.key -out ca.crt -subj "/C=CN/ST=Beijing/L=Beijing/O=mogu/OU=CA/CN=mogu/emailAddress=admin@mogu.com"
echo "1" > serial

# Useage: sh createCA.sh

二 签名域名

#!/bin/bash

mkdir ${1}
cd ${1}
echo "[ req ]
default_bits       = 4096
distinguished_name = req_distinguished_name
req_extensions     = req_ext

[ req_distinguished_name ]
countryName                 = Country Name (2 letter code)
countryName_default         = CN
stateOrProvinceName         = State or Province Name (full name)
stateOrProvinceName_default = Beijing
localityName                = Locality Name (eg, city)
localityName_default        = Beijing
organizationName            = Organization Name (eg, company)
organizationName_default    = www
organizationalUnitName            = Organizational Unit Name (eg, section)
organizationalUnitName_default    = IT
commonName                  = Common Name (e.g. server FQDN or YOUR name)
commonName_max              = 64
commonName_default          = ${1}

[ req_ext ]
subjectAltName = @alt_names

[alt_names]
DNS.1   = ${1}
" > san.conf

openssl genrsa -out ${1}.key 4096

openssl req -new -key ${1}.key -out ${1}.csr -config san.conf -sha256

# serial 唯一
serial=$(cat ../CA/serial)
openssl x509 -req -days 3650 -in ${1}.csr -CA ../CA/ca.crt -CAkey ../CA/ca.key -set_serial $((serial+1)) -out ${1}.crt -extfile san.conf -extensions req_ext
echo $((serial+1)) > ../CA/serial

# Useage: sh signDoamin.sh localhost

三 配置 CA 证书

# /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
发布日期:
分类:Linux

CentOS7使用Firewall屏蔽端口

1 安装 Firewalld

yum install -y firewalld

2 开启常用端口

firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent

3 特殊端口指定IP访问权限

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.0.0/16" port port="8080" protocol="tcp" accept'

4 只针对 IPV4 或者 IPV6 地址开放端口

firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="443" protocol="tcp" accept'

5 重新加载防火墙规则

firewall-cmd --reload
发布日期:
分类:Linux

自定义树莓派系统镜像

# 获取最新的树莓派系统镜像
wget https://downloads.raspberrypi.org/raspbian_lite_latest

# 解压系统
unzip raspbian_lite_latest

# 查看系统分区信息
fdisk -lu 2021-01-11-raspios-buster-armhf-lite.img

# 挂载第一个分区 Fat32 格式
mount -o loop,offset=4194304 2021-01-11-raspios-buster-armhf-lite.img /mnt/

# 开启 SSH 
touch /mnt/ssh

# Wifi 自动连接
echo "country=CN
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="WIFI"
    psk="12345678"
    priority=1
    key_mgmt=WPA-PSK
}
" >> /mnt/wpa_supplicant.conf

# 卸载第一个分区
umount /mnt/

# 挂载第二个分区 Ext4 格式
mount -o loop,offset=272629760 2021-01-11-raspios-buster-armhf-lite.img /mnt

# 开启 root 用户登录
sed -i "s/#PermitRootLogin prohibit-password/PermitRootLogin yes/g" /mnt/etc/ssh/sshd_config

# root 密码
openssl passwd -1 123456
sed -i "s/root:*:/root:$1$WnVLEqxw$RtbKjeiasCwcJONnUjAby0:/g" /mnt/etc/shadow

# SSH 服务优化
sed -i "s/#UseDNS no/UseDNS no/g" /mnt/etc/ssh/sshd_config

# 清空登录提示信息
echo "" > /mnt/etc/motd

# 更换阿里云镜像源
echo "deb https://mirrors.aliyun.com/raspbian/raspbian/ buster main non-free contrib
deb-src https://mirrors.aliyun.com/raspbian/raspbian/ buster main non-free contrib" > /mnt/etc/apt/sources.list
sed -i "s/deb http/#deb http/g" /mnt/etc/apt/sources.list.d/raspi.list

# 卸载第二个分区
umount /mnt/

发布日期:
分类:Linux

SSH配置多密钥登录

修改 SSH 服务配置文件 #~/.ssh/config

Host *
    Compression yes
    ServerAliveInterval 60
    ServerAliveCountMax 20

Host centos
    HostName 0.0.0.0
    User root
    IdentityFile ~/.ssh/root.pem
发布日期:
分类:Linux

Unit with Python

yum install -y gcc wget python-devel

wget https://github.com/nginx/unit/archive/1.4.tar.gz

tar zxf 1.4.tar.gz
cd unit-1.4
./configure --prefix=/usr/local/unit
./configure python
make && make install

ln -s /usr/local/unit/sbin/unitd /usr/sbin/

unitd --control 127.0.0.1:9800

echo "def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return '

Hello, web!

'" > /www/html/wsgi.py echo '{"listeners":{"*:9801":{"application":"test"}},"applications":{"test":{"type":"python","path":"/www/html","module":"wsgi"}}}' > /tmp/app.json curl -X PUT -d @/tmp/app.json '127.0.0.1:9800/config'
发布日期:
分类:Linux

配置systemd启动文件

目录:/usr/lib/systemd/system
文件:name.service

[Unit]
Description=Service Name
After=network.target

[Service]
ExecStart=/usr/bin/python my.py
Restart=always
User=nobody
Group=nobody

[Install]
WantedBy=multi-user.target
发布日期:
分类:Linux

CentOS7设置静态IP


TYPE="Ethernet"
BOOTPROTO="static"
DEFROUTE="yes"
IPV6INIT="no"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="10.0.0.4"
GATEWAY="10.0.0.1"
NETMASK="255.255.255.0"
DNS1="223.5.5.5"
DNS2="223.6.6.6"
发布日期:
分类:Linux

SSH服务优化

# /etc/ssh/sshd_config
Port 2222
ListenAddress 0.0.0.0
UseDNS no
ClientAliveInterval 10
ClientAliveCountMax 3
发布日期:
分类:Linux