<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.gold4y.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jim</id>
	<title>Danbing - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.gold4y.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jim"/>
	<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php/Special:Contributions/Jim"/>
	<updated>2026-06-18T01:20:18Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=351</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=351"/>
		<updated>2026-06-17T11:22:35Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* 3322.org */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''CN2 VPS''' ====&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|平台&lt;br /&gt;
|线路类型&lt;br /&gt;
|节点覆盖&lt;br /&gt;
|国内支付&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|萤光云&lt;br /&gt;
|CN2优化&lt;br /&gt;
|全球&lt;br /&gt;
|支付宝/微信&lt;br /&gt;
|https://bit.ly/ygcloud-cn2&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|LightNode&lt;br /&gt;
|CN2多线路可选&lt;br /&gt;
|全球&lt;br /&gt;
|支付宝/微信&lt;br /&gt;
|https://bit.ly/lightnode-cn&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|搬瓦工&lt;br /&gt;
|CN2 GIA/GT&lt;br /&gt;
|亚洲为主&lt;br /&gt;
|不支持&lt;br /&gt;
|https://bandwagonhost.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|DMIT&lt;br /&gt;
|CN2 GIA&lt;br /&gt;
|少量核心节点&lt;br /&gt;
|不支持&lt;br /&gt;
|https://dmit.io&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Vultr&lt;br /&gt;
|优化线路&lt;br /&gt;
|全球&lt;br /&gt;
|不支持&lt;br /&gt;
|https://vultr.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
===== nfs相关 =====&lt;br /&gt;
 showmount -e 192.168.31.100&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/exports&lt;br /&gt;
 sudo exportfs  -r&lt;br /&gt;
 sudo exportfs  -v                        # view current shares&lt;br /&gt;
 sudo systemctl restart nfs-kernel-server # centos/rhel: systemctl restart nfs-server&lt;br /&gt;
 exportfs -u /home/jim/www                # 临时取消共享路径&lt;br /&gt;
 mount -o remount /home/jim/www&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install software-properties-common -y&lt;br /&gt;
 sudo add-apt-repository ppa:deadsnakes/ppa -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
===== 编译安装 =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev -y&lt;br /&gt;
 wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz&lt;br /&gt;
 tar -xf Python-3.10.15.tgz&lt;br /&gt;
 cd Python-3.10.15&lt;br /&gt;
 ./configure --enable-optimizations&lt;br /&gt;
 make -j$(nproc)&lt;br /&gt;
 sudo make altinstall&lt;br /&gt;
&lt;br /&gt;
 $which pip3.10&lt;br /&gt;
 /usr/local/bin/pip3.10&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
 0 */2 * * * root echo &amp;quot;do rmt ip update&amp;quot; | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash /home/jim/.tools/segwcfg/tools/ovpnipupd.sh /etc/openvpn/cHK12.conf 2&amp;gt;&amp;amp;1 | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
===== debugs =====&lt;br /&gt;
 export TZ=Asia/Shanghai &amp;amp;&amp;amp; bash ./client.sCOM.conf.sh --client-prefix vhk01c --client-name vhk01c2106b26 --key-expire 1 --ip-idx 18 --vpn-server 123.207.218.117 --vpn-port 9093 --vpn-subnet 10.8.8.0.24 --vpn-mode sCOM --var-file vars.ffv00&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== Docker NFS ======&lt;br /&gt;
    environment:&lt;br /&gt;
      - NFS_EXPORT_0=/var/www *(rw,sync,no_subtree_check,no_root_squash)&lt;br /&gt;
      - NFS_EXPORT_1=/etc/letsencrypt *(rw,sync,no_subtree_check,no_root_squash)&lt;br /&gt;
&lt;br /&gt;
 nfs server host:&lt;br /&gt;
 sudo apt install -y nfs-common&lt;br /&gt;
 modprobe nfs&lt;br /&gt;
 echo &amp;quot;nfs&amp;quot; | sudo tee -a /etc/modules-load.d/nfs.conf&lt;br /&gt;
 echo &amp;quot;nfsd&amp;quot; | sudo tee -a /etc/modules-load.d/nfs.conf&lt;br /&gt;
&lt;br /&gt;
 showmount -e 192.168.31.99&lt;br /&gt;
 sudo mount -t nfs -o vers=3 192.168.31.99:/etc/letsencrypt /mnt&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 openssl s_client -showcerts -connect ffvpn.net:443 &amp;lt;/dev/null 2&amp;gt;/dev/null|openssl x509 -outform PEM &amp;gt;$secroot/dockimage/etc/docker/certs.d/ffvpn.net/ffvpn.crt&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
 Host: (avoid container fail to create dir in volume mapped dir)&lt;br /&gt;
 chown -R 1000:1000 ~/tools/segwcfg&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== debugs ======&lt;br /&gt;
 $docker compose  -f nginx.front.yml up -d ngix_ffvpn_net&lt;br /&gt;
 ngix_ffvpn_net Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/default/grub&lt;br /&gt;
 GRUB_CMDLINE_LINUX=&amp;quot;cgroup_enable=memory swapaccount=1&amp;quot;&lt;br /&gt;
 sudo update-grub&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Miscs =====&lt;br /&gt;
 echo &amp;quot;appuser ALL=(ALL) NOPASSWD:ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E4%B8%8A%E6%B5%B7%E8%B4%9D%E5%B0%94&amp;diff=350</id>
		<title>上海贝尔</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E4%B8%8A%E6%B5%B7%E8%B4%9D%E5%B0%94&amp;diff=350"/>
		<updated>2026-05-13T10:47:09Z</updated>

		<summary type="html">&lt;p&gt;Jim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|Title&lt;br /&gt;
|User&lt;br /&gt;
|PA&lt;br /&gt;
|PB&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|east air&lt;br /&gt;
|42900&lt;br /&gt;
|4RV3c6&lt;br /&gt;
|&lt;br /&gt;
|https://m.ceair.com/Home?c2de1f5294e78d31b35d7b6ffd38b455=81dd6fbb600239db7811f320e03af146&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|jd-biz&lt;br /&gt;
|ccmall-jd&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|https://lai.jd.com/lai/index&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|paypal&lt;br /&gt;
|&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|https://lai.jd.com/lai/index&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|1107389&lt;br /&gt;
|1352458&lt;br /&gt;
|4v3c&lt;br /&gt;
|&lt;br /&gt;
|https://ruitonghl.com/clientarea&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|ali-shop&lt;br /&gt;
|120316489@qq.com&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4v36&lt;br /&gt;
|q8680&lt;br /&gt;
|https://b.alipay.com/page/home&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|openai&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|https://platform.openai.com/overview&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|miniAPP&lt;br /&gt;
|ccmall&lt;br /&gt;
|Jq17&lt;br /&gt;
|&lt;br /&gt;
|jim.qiu@hotmail.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|CCltop&lt;br /&gt;
|&lt;br /&gt;
|xuzhou&lt;br /&gt;
|&lt;br /&gt;
|JBJGW-XN49T-Q2HR7-3BK2B-3GPKM&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|Title&lt;br /&gt;
|User&lt;br /&gt;
|PA&lt;br /&gt;
|PB&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|EPSON_LQ-610K&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|http://192.168.31.96:631/printers/EPSON_LQ-610K&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|南京银行&lt;br /&gt;
|13524584011&lt;br /&gt;
|4v3c&lt;br /&gt;
|3296&lt;br /&gt;
|6217770141948277&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|江苏银行&lt;br /&gt;
|13524584011&lt;br /&gt;
|Jq17&lt;br /&gt;
|usb:821&lt;br /&gt;
|p:3296&lt;br /&gt;
|https://ebank.jsbchina.cn/newperbank/&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|工商银行&lt;br /&gt;
|6222001001115230683&lt;br /&gt;
|Jq17&lt;br /&gt;
|&lt;br /&gt;
|ud:3296&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|宁波银行&lt;br /&gt;
|6222810001291419&lt;br /&gt;
|Web:821&lt;br /&gt;
|Pin:821&lt;br /&gt;
|p:3296&lt;br /&gt;
|http://www.nbcb.com.cn/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|6227780428203104&lt;br /&gt;
|821&lt;br /&gt;
|680&lt;br /&gt;
|3296&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|上海银行&lt;br /&gt;
|6251939055773388&lt;br /&gt;
|821&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|农商银行&lt;br /&gt;
|6231626031038241547&lt;br /&gt;
|&lt;br /&gt;
|827?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|6226113130283936&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|7528&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|招商银行&lt;br /&gt;
|6226090213487222&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|中国银行&lt;br /&gt;
|6259063102501999&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|公安&lt;br /&gt;
|913101203015385922&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|税务&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|楚玉&lt;br /&gt;
|上海楚玉网络科技有限公司&lt;br /&gt;
|2900171523201 &lt;br /&gt;
|招商银行股份有限公司上海金桥支行 121912864810101&lt;br /&gt;
|上海市嘉定区新成路468弄500号JT12158室&lt;br /&gt;
|统一信用代码: 913101203015385922&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|310226301538592&lt;br /&gt;
|91310120301538592226643&lt;br /&gt;
|税务授权4v36G&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|阿里云计算有限公司&lt;br /&gt;
|招商银行杭州高新支行（联行号：308331012079）&lt;br /&gt;
|5719 0549 3610 7020 2021 2801&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|微众&lt;br /&gt;
|上海楚玉网络科技有限公司企业贷款专用户&lt;br /&gt;
|3296&lt;br /&gt;
|9999677358090100146816&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|app:135:qwg07522&lt;br /&gt;
|app:9592:qw82&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|长城证券&lt;br /&gt;
|300000026640&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|300000026982&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|ETC&lt;br /&gt;
|0195284570&lt;br /&gt;
|query: 821&lt;br /&gt;
|trade:666666&lt;br /&gt;
|终端号:800195284570&lt;br /&gt;
|sptcc.com&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|恒创科技&lt;br /&gt;
|13524584011&lt;br /&gt;
|!zx&lt;br /&gt;
|yellowjim@qq.com&lt;br /&gt;
|154.204.32.185&lt;br /&gt;
|https://www.henghost.com/&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|156.245.17.73&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|京东&lt;br /&gt;
|jim.qiu&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|12123&lt;br /&gt;
|13524584011&lt;br /&gt;
|4c&lt;br /&gt;
|&lt;br /&gt;
|gab.122.gov.cn&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Baidu&lt;br /&gt;
|qiuwugang&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Xiaomi&lt;br /&gt;
|xx&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Gmail&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|Jq17&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Twitter&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
|wqiu@wqiu56333627&lt;br /&gt;
|https://twitter.com/home&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Gmail&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|Jq17&lt;br /&gt;
|&lt;br /&gt;
|danbingame@gmail.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|OPENVPN&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Facebook&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|Jq21&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Paypal&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c2f&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|https://developer.paypal.com/docs/checkout/integrate/&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|OKEX&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c2F&lt;br /&gt;
|13524584011&lt;br /&gt;
|cash:4c6&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|opensource.com&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|&lt;br /&gt;
|ffvpn&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Office2010&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|4DQ7Y-2XB2P-BMYVC-FXB36-HTRJC&lt;br /&gt;
|86J34-WFJBM-QXKQW-PTHRW-9TX86&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|GitHub&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c26&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|https://github.com/&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|DoMain.com&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c2F&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|https://www1.domain.com/controlpanel/foundation/&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Baidu&lt;br /&gt;
|qiuwugang&lt;br /&gt;
|4v3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Hotmail&lt;br /&gt;
|jim.qiu@hotmail.com&lt;br /&gt;
|4c26&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|VS Code&lt;br /&gt;
|jim.qiu@hotmail.com&lt;br /&gt;
|&lt;br /&gt;
|BEA373621LOYm2VRkog18B3QnJcLRfQP&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|AWS&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c2F&lt;br /&gt;
|aws.amazon.com&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|苏K&lt;br /&gt;
|C020000232&lt;br /&gt;
|&lt;br /&gt;
|LNPA7PBD7BG046165&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|沪B&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Onstar&lt;br /&gt;
|13524584011&lt;br /&gt;
|oper:821&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|wiki&lt;br /&gt;
|&lt;br /&gt;
|https://www.youtube.com/watch?v=JeR1gCa6wVI&lt;br /&gt;
|jim&lt;br /&gt;
|J21&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|apple&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|J07&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|tencent cloud&lt;br /&gt;
|100023522656&lt;br /&gt;
|120316489@qq.com&lt;br /&gt;
|4v6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|apple id&lt;br /&gt;
|Th112211&lt;br /&gt;
|朋友:cheng111&lt;br /&gt;
|工作:cheng222&lt;br /&gt;
|父母:cheng333&lt;br /&gt;
|生日:1990-01-01&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|富途牛牛&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|1QZ2x&lt;br /&gt;
|8268&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|Title&lt;br /&gt;
|User&lt;br /&gt;
|PA&lt;br /&gt;
|PB&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|yellowjim@qq.com&lt;br /&gt;
|!Z2x&lt;br /&gt;
|standalone pw&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|binance &lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|&lt;br /&gt;
|4v3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|paxful&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|PH&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|yellowjim3322&lt;br /&gt;
|4v3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|sms-activate&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|1z2x&lt;br /&gt;
|&lt;br /&gt;
|https://sms-activate.org/getNumber&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=349</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=349"/>
		<updated>2026-05-12T13:47:02Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* Docker NFS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''CN2 VPS''' ====&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|平台&lt;br /&gt;
|线路类型&lt;br /&gt;
|节点覆盖&lt;br /&gt;
|国内支付&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|萤光云&lt;br /&gt;
|CN2优化&lt;br /&gt;
|全球&lt;br /&gt;
|支付宝/微信&lt;br /&gt;
|https://bit.ly/ygcloud-cn2&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|LightNode&lt;br /&gt;
|CN2多线路可选&lt;br /&gt;
|全球&lt;br /&gt;
|支付宝/微信&lt;br /&gt;
|https://bit.ly/lightnode-cn&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|搬瓦工&lt;br /&gt;
|CN2 GIA/GT&lt;br /&gt;
|亚洲为主&lt;br /&gt;
|不支持&lt;br /&gt;
|https://bandwagonhost.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|DMIT&lt;br /&gt;
|CN2 GIA&lt;br /&gt;
|少量核心节点&lt;br /&gt;
|不支持&lt;br /&gt;
|https://dmit.io&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Vultr&lt;br /&gt;
|优化线路&lt;br /&gt;
|全球&lt;br /&gt;
|不支持&lt;br /&gt;
|https://vultr.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install software-properties-common -y&lt;br /&gt;
 sudo add-apt-repository ppa:deadsnakes/ppa -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
===== 编译安装 =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev -y&lt;br /&gt;
 wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz&lt;br /&gt;
 tar -xf Python-3.10.15.tgz&lt;br /&gt;
 cd Python-3.10.15&lt;br /&gt;
 ./configure --enable-optimizations&lt;br /&gt;
 make -j$(nproc)&lt;br /&gt;
 sudo make altinstall&lt;br /&gt;
&lt;br /&gt;
 $which pip3.10&lt;br /&gt;
 /usr/local/bin/pip3.10&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
 0 */2 * * * root echo &amp;quot;do rmt ip update&amp;quot; | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash /home/jim/.tools/segwcfg/tools/ovpnipupd.sh /etc/openvpn/cHK12.conf 2&amp;gt;&amp;amp;1 | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
===== debugs =====&lt;br /&gt;
 export TZ=Asia/Shanghai &amp;amp;&amp;amp; bash ./client.sCOM.conf.sh --client-prefix vhk01c --client-name vhk01c2106b26 --key-expire 1 --ip-idx 18 --vpn-server 123.207.218.117 --vpn-port 9093 --vpn-subnet 10.8.8.0.24 --vpn-mode sCOM --var-file vars.ffv00&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== Docker NFS ======&lt;br /&gt;
    environment:&lt;br /&gt;
      - NFS_EXPORT_0=/var/www *(rw,sync,no_subtree_check,no_root_squash)&lt;br /&gt;
      - NFS_EXPORT_1=/etc/letsencrypt *(rw,sync,no_subtree_check,no_root_squash)&lt;br /&gt;
&lt;br /&gt;
 nfs server host:&lt;br /&gt;
 sudo apt install -y nfs-common&lt;br /&gt;
 modprobe nfs&lt;br /&gt;
 echo &amp;quot;nfs&amp;quot; | sudo tee -a /etc/modules-load.d/nfs.conf&lt;br /&gt;
 echo &amp;quot;nfsd&amp;quot; | sudo tee -a /etc/modules-load.d/nfs.conf&lt;br /&gt;
&lt;br /&gt;
 showmount -e 192.168.31.99&lt;br /&gt;
 sudo mount -t nfs -o vers=3 192.168.31.99:/etc/letsencrypt /mnt&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 openssl s_client -showcerts -connect ffvpn.net:443 &amp;lt;/dev/null 2&amp;gt;/dev/null|openssl x509 -outform PEM &amp;gt;$secroot/dockimage/etc/docker/certs.d/ffvpn.net/ffvpn.crt&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
 Host: (avoid container fail to create dir in volume mapped dir)&lt;br /&gt;
 chown -R 1000:1000 ~/tools/segwcfg&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== debugs ======&lt;br /&gt;
 $docker compose  -f nginx.front.yml up -d ngix_ffvpn_net&lt;br /&gt;
 ngix_ffvpn_net Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/default/grub&lt;br /&gt;
 GRUB_CMDLINE_LINUX=&amp;quot;cgroup_enable=memory swapaccount=1&amp;quot;&lt;br /&gt;
 sudo update-grub&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Miscs =====&lt;br /&gt;
 echo &amp;quot;appuser ALL=(ALL) NOPASSWD:ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=Linux_Bible&amp;diff=348</id>
		<title>Linux Bible</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=Linux_Bible&amp;diff=348"/>
		<updated>2026-05-04T06:45:54Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* Var OP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== '''Bash''' ===&lt;br /&gt;
 ||, &amp;amp;&amp;amp;, &amp;lt;, &amp;gt;, =, ==, =~, -n, -z, -lt, -eq, -ne&lt;br /&gt;
 &amp;lt;, &amp;gt;, = (字符串比较，双括号不需要转移) [ &amp;quot;${name}&amp;quot; \&amp;gt; &amp;quot;a&amp;quot; -o &amp;quot;${name}&amp;quot; \&amp;lt; &amp;quot;m&amp;quot; ]  [[ &amp;quot;${name}&amp;quot; &amp;gt; &amp;quot;a&amp;quot; &amp;amp;&amp;amp; &amp;quot;${name}&amp;quot; &amp;lt; &amp;quot;m&amp;quot; ]]&lt;br /&gt;
 &amp;quot;t=&amp;quot;&amp;quot;abc123&amp;quot;&amp;quot;&lt;br /&gt;
 [[ &amp;quot;&amp;quot;$t&amp;quot;&amp;quot; == abc* ]] true (globabing 比较）&lt;br /&gt;
 [[ &amp;quot;&amp;quot;$t&amp;quot;&amp;quot; == &amp;quot;&amp;quot;abc*&amp;quot;&amp;quot; ]] false (字面比较)&lt;br /&gt;
 [[ &amp;quot;&amp;quot;$t&amp;quot;&amp;quot; =~ [abc]+[123]+ ]] true (正则表达式比较)&lt;br /&gt;
 [[ &amp;quot;&amp;quot;$t&amp;quot;&amp;quot; =~ &amp;quot;&amp;quot;abc*&amp;quot;&amp;quot; ]] false (字面比较)&lt;br /&gt;
 r=&amp;quot;&amp;quot;a b+&amp;quot;&amp;quot;&lt;br /&gt;
 [[ &amp;quot;&amp;quot;a bbb&amp;quot;&amp;quot; =~ $r ]] true&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==== Conditon ====&lt;br /&gt;
 -d file file存在并且是一个目录&lt;br /&gt;
 -e file file存在&lt;br /&gt;
 -f file file存在并且是普通文件&lt;br /&gt;
 -r file file有读权限&lt;br /&gt;
 -s file file存在且不为空&lt;br /&gt;
 -w file file写权限&lt;br /&gt;
 -x file file有执行权限&lt;br /&gt;
 -a FILE 如果 FILE 存在则为真。&lt;br /&gt;
 [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。&lt;br /&gt;
 [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。&lt;br /&gt;
 [ -d FILE ] 如果 FILE 存在且是一个目录则为真。&lt;br /&gt;
 [ -e FILE ] 如果 FILE 存在则为真。&lt;br /&gt;
 [ -f FILE ] 如果 FILE 存在且是一个普通文件则为真。&lt;br /&gt;
 [ -g FILE ] 如果 FILE 存在且已经设置了SGID则为真。&lt;br /&gt;
 [ -h FILE ] 如果 FILE 存在且是一个符号连接则为真。&lt;br /&gt;
 [ -k FILE ] 如果 FILE 存在且已经设置了粘制位则为真。&lt;br /&gt;
 [ -p FILE ] 如果 FILE 存在且是一个名字管道(F如果O)则为真。&lt;br /&gt;
 [ -r FILE ] 如果 FILE 存在且是可读的则为真。&lt;br /&gt;
 [ -s FILE ] 如果 FILE 存在且大小不为0则为真。&lt;br /&gt;
 [ -t FD ] 如果文件描述符 FD 打开且指向一个终端则为真。&lt;br /&gt;
 [ -u FILE ] 如果 FILE 存在且设置了SUID (set user ID)则为真。&lt;br /&gt;
 [ -w FILE ] 如果 FILE 如果 FILE 存在且是可写的则为真。&lt;br /&gt;
 [ -x FILE ] 如果 FILE 存在且是可执行的则为真。&lt;br /&gt;
 [ -O FILE ] 如果 FILE 存在且属有效用户ID则为真。&lt;br /&gt;
 [ -G FILE ] 如果 FILE 存在且属有效用户组则为真。&lt;br /&gt;
 [ -L FILE ] 如果 FILE 存在且是一个符号连接则为真。&lt;br /&gt;
 [ -N FILE ] 如果 FILE 存在 and has been mod如果ied since it was last read则为真。&lt;br /&gt;
 [ -S FILE ] 如果 FILE 存在且是一个套接字则为真。&lt;br /&gt;
&lt;br /&gt;
==== Var OP ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ${#var_name}		$var_name 的字符串长度					&lt;br /&gt;
 ${var:n1}		截取变量var从n1开始的字符					&lt;br /&gt;
 ${var:n1:n2}		截取变量var从n1开始的n2个字符					&lt;br /&gt;
 ${var#substring}	从变量$string的开头, 删除最短匹配$substring的子串					&lt;br /&gt;
 ${var##substring}	从变量$string的开头, 删除最长匹配$substring的子串					&lt;br /&gt;
 ${var#*string}		从左向右截取第一个string后的字符串					&lt;br /&gt;
 ${var##*string} 	从左向右截取最后一个string后的字符串					&lt;br /&gt;
 ${var%substring}	从变量$string的结尾, 删除最短匹配$substring的子串 					&lt;br /&gt;
 ${var%%substring}	从变量$string的结尾, 删除最长匹配$substring的子串					&lt;br /&gt;
 ${var%string*}		从右向左截取第一个string后的字符串					&lt;br /&gt;
 ${var%%string*}	从右向左截取最后一个string后的字符串					&lt;br /&gt;
 ${string/substr/rplacemnt}			使用 $rplacemnt, 来代替第一个匹配的 $substr				&lt;br /&gt;
 ${string//substr/rplacemnt}			使用 $rplacemnt, 代替所有匹配的 $substr				&lt;br /&gt;
 ${string/#substr/rplacemnt}			前缀匹配 $substring, 用 $rplacemnt 来代替匹配				&lt;br /&gt;
 ${string/%substr/rplacemnt}			后缀匹配 $substring, 用 $rplacemnt 来代替匹配&lt;br /&gt;
&lt;br /&gt;
 ${test##*/}  获取文件名&lt;br /&gt;
 ${test%/*}   获取目录名&lt;br /&gt;
&lt;br /&gt;
 t_dev=$(cat $i |grep '^dev'|awk '{print $2}')&lt;br /&gt;
 t_dev=${t_dev//[$'\t\r\n']}&lt;br /&gt;
&lt;br /&gt;
 \[\e[F;Bm\]........\[\e[0m\]					&lt;br /&gt;
 /etc/DIR_COLORS =&amp;gt; ~/.dir_colors					&lt;br /&gt;
					&lt;br /&gt;
 F	B				&lt;br /&gt;
 30	40	黑色			&lt;br /&gt;
 31	41	红色			&lt;br /&gt;
 32	42	绿色			&lt;br /&gt;
 33	43	黄色			&lt;br /&gt;
 34	44	蓝色			&lt;br /&gt;
 35	45	紫红色			&lt;br /&gt;
 36	46	青蓝色			&lt;br /&gt;
 37	47	白色			&lt;br /&gt;
					&lt;br /&gt;
 diff &amp;lt;(wget -o - url1) &amp;lt;(wget -o - url2)&lt;br /&gt;
&lt;br /&gt;
==== Array ====&lt;br /&gt;
 定义:&lt;br /&gt;
 declare -A array1&lt;br /&gt;
 declare -a 显示所有数组&lt;br /&gt;
&lt;br /&gt;
 赋值:&lt;br /&gt;
 array1=(value1 value2 value3)&lt;br /&gt;
 或&lt;br /&gt;
 array1[0]=value1&lt;br /&gt;
 array1[1]=value2&lt;br /&gt;
&lt;br /&gt;
 变量	取值&lt;br /&gt;
 echo ${array1[0]}	数组第一个元素&lt;br /&gt;
 echo ${array1[@]} 或 echo ${array1[*]}	数组所有元素&lt;br /&gt;
 echo ${#array1[@]}	数组元素个数&lt;br /&gt;
 echo ${!array1[@]}	数组所有索引下标&lt;br /&gt;
 echo ${array1[@]:1}	数组索引1以后的元素&lt;br /&gt;
 echo ${array1[@]:1:2}	数组索引1以后2个元素&lt;br /&gt;
 declare -a	查看所有普通数组&lt;br /&gt;
&lt;br /&gt;
 遍历:&lt;br /&gt;
 遍历元素&lt;br /&gt;
 for t in ${allThreads[@]}; do&lt;br /&gt;
 done&lt;br /&gt;
 遍历索引&lt;br /&gt;
 for i in ${!allThreads[@]}; do&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
 demo:&lt;br /&gt;
 统计系统中不同shell的使用次数&lt;br /&gt;
 declare -A shs&lt;br /&gt;
 while read line&lt;br /&gt;
 do&lt;br /&gt;
     sh_type=`echo $line | awk -F&amp;quot;:&amp;quot; '{print $NF}'`&lt;br /&gt;
     let shs[$sh_type]++&lt;br /&gt;
 done&lt;br /&gt;
&lt;br /&gt;
==== Loop Array ====&lt;br /&gt;
&lt;br /&gt;
=== '''ls''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''sed''' ===&lt;br /&gt;
 sed -i &amp;quot;/^&amp;lt;${OP_KEY}&amp;gt;/r ${OP_KFILE}&amp;quot; $conf_file&lt;br /&gt;
 sed -n '/^-----BEGIN CERTIFICATE-----/,/^-----END CERTIFICATE-----$/p' server.crt&lt;br /&gt;
 sed -i &amp;quot;/^172.*/s/^172.*$/$netip/&amp;quot; &amp;quot;$xfile&amp;quot;&lt;br /&gt;
 sed -i &amp;quot;s/dpAclBlacklist/dpAclBlocklist/g&amp;quot; dpMgr/src/dpAclMgr.cpp&lt;br /&gt;
 sed = a.txt | sed 'N; s/^/     /; s/ *\(.\{4,\}\)\n/\1  /'&lt;br /&gt;
 sed = a.txt | sed 'N;s/\n/\t/'&lt;br /&gt;
 sed -n '1,/everyone/p' a.txt&lt;br /&gt;
 sed -n '/learn/,+2p' a.txt&lt;br /&gt;
 sed 's/life/leaves/' a.txt&lt;br /&gt;
 sed 's/to/two/2' a.txt&lt;br /&gt;
 sed 's/life/learn/g' a.txt&lt;br /&gt;
 sed 's/to/TWO/2g' a.txt&lt;br /&gt;
 If you wish to print only the replaced lines, then use “-n” option along with “/p” print flag to display only the replaced lines&lt;br /&gt;
 sed -n 's/to/TWO/p' a.txt&lt;br /&gt;
 Replace a pattern with other except in the nth line&lt;br /&gt;
 sed -i '5!s/life/love/' a.txt&lt;br /&gt;
 sed -n 's/\(love\)able/\1rs/p'&lt;br /&gt;
&lt;br /&gt;
 sed -i '/^status / s/^\(.*\)$/;\1/g' *.conf&lt;br /&gt;
 cat abc.txt | sed '$G'  #文件尾加空行&lt;br /&gt;
&lt;br /&gt;
 echo True | sed 's/[a-z]/\u&amp;amp;/g' - # 转小写&lt;br /&gt;
 echo True | sed 's/[A-Z]/\l&amp;amp;/g' - # 转大写&lt;br /&gt;
 echo &amp;quot;abcdefg&amp;quot; | awk '{print toupper($0)}'&lt;br /&gt;
 echo &amp;quot;ABCDEF&amp;quot; | awk '{print tolower($0)}'&lt;br /&gt;
 UPPERCASE=(echo(echo VARIABLE | tr '[a-z]' '[A-Z]')&lt;br /&gt;
 LOWERCASE=(echo(echoVARIABLE | tr '[A-Z]' '[a-z]')&lt;br /&gt;
&lt;br /&gt;
 t_dev=$(cat $i |grep '^dev'|awk '{print $2}')&lt;br /&gt;
 t_dev=${t_dev//[$'\t\r\n']}&lt;br /&gt;
&lt;br /&gt;
=== '''awk''' ===&lt;br /&gt;
 ARGC   命令行变元个数 &lt;br /&gt;
 ARGV   命令行变元数组 &lt;br /&gt;
 FILENAME   当前输入文件名 &lt;br /&gt;
 FNR   当前文件中的记录号 &lt;br /&gt;
 FS   输入域分隔符，默认为一个空格 &lt;br /&gt;
 RS   输入记录分隔符 &lt;br /&gt;
 NF   当前记录里域个数 &lt;br /&gt;
 NR   到目前为止记录数 &lt;br /&gt;
 OFS   输出域分隔符 &lt;br /&gt;
 ORS   输出记录分隔符 &lt;br /&gt;
&lt;br /&gt;
 计算文件第3列的和&lt;br /&gt;
 awk '{ x += $3 } END { print x }' myfile.txt&lt;br /&gt;
 awk -F, 'NF&amp;gt;1 {OFS=&amp;quot;%&amp;quot;;i=1; while(i&amp;lt;NF) {print $1,$i; i++}}' &amp;lt; input.txt&lt;br /&gt;
 awk -F, 'BEGIN {print ARGC} NF&amp;gt;1 {OFS=&amp;quot;%&amp;quot;;i=1; while(i&amp;lt;NF) {print $1,$i; i++}}'&lt;br /&gt;
 awk '/101/,/105/' file&lt;br /&gt;
 awk '$1 * $2 &amp;gt;100 ' file&lt;br /&gt;
 awk '{gsub(/\$/,&amp;quot;&amp;quot;);gsub(/,/,&amp;quot;&amp;quot;); &lt;br /&gt;
    if ($4&amp;gt;1000&amp;amp;&amp;amp;$4&amp;lt;2000) c1+=$4; &lt;br /&gt;
    else if ($4&amp;gt;2000&amp;amp;&amp;amp;$4&amp;lt;3000) c2+=$4; &lt;br /&gt;
    else if ($4&amp;gt;3000&amp;amp;&amp;amp;$4&amp;lt;4000) c3+=$4; &lt;br /&gt;
    else c4+=$4; } &lt;br /&gt;
    END {printf  &amp;quot;c1=[%d];c2=[%d];c3=[%d];c4=[%d]\n&amp;quot;,c1,c2,c3,c4}&amp;quot;'&lt;br /&gt;
&lt;br /&gt;
 ls | xargs du -s -m | awk '$1&amp;gt;50000{print $1,$2}'&lt;br /&gt;
&lt;br /&gt;
=== '''tar''' ===&lt;br /&gt;
&lt;br /&gt;
=== '''Tmux Usage''' ===&lt;br /&gt;
&lt;br /&gt;
 ^B + c     New Window&lt;br /&gt;
 ^B + num   Switch to the nubered window&lt;br /&gt;
 ^B + n     Switch to next window&lt;br /&gt;
 ^B + d     Detach the tmux to background&lt;br /&gt;
 ^B + %     Split the window with left/right&lt;br /&gt;
 ^B + &amp;quot;     Split the window with up/down&lt;br /&gt;
 ^B + arrow Switch to window on left/right/up/down&lt;br /&gt;
 ^B + x     Kill current window&lt;br /&gt;
 ^B + z     Enlarge/Recover current window&lt;br /&gt;
 ^B + t     Show clock/time on current window&lt;br /&gt;
 ^B + ,     Rename current window&lt;br /&gt;
 ^B + [     Enter copy-mode, Arrows to move cursor&lt;br /&gt;
 ^B + PagUD Roll the current screen.&lt;br /&gt;
&lt;br /&gt;
 vim ~/.tmux.conf&lt;br /&gt;
 setw -g mode-keys vi&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=347</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=347"/>
		<updated>2026-04-29T19:26:08Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* Easy RSA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''CN2 VPS''' ====&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|平台&lt;br /&gt;
|线路类型&lt;br /&gt;
|节点覆盖&lt;br /&gt;
|国内支付&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|萤光云&lt;br /&gt;
|CN2优化&lt;br /&gt;
|全球&lt;br /&gt;
|支付宝/微信&lt;br /&gt;
|https://bit.ly/ygcloud-cn2&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|LightNode&lt;br /&gt;
|CN2多线路可选&lt;br /&gt;
|全球&lt;br /&gt;
|支付宝/微信&lt;br /&gt;
|https://bit.ly/lightnode-cn&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|搬瓦工&lt;br /&gt;
|CN2 GIA/GT&lt;br /&gt;
|亚洲为主&lt;br /&gt;
|不支持&lt;br /&gt;
|https://bandwagonhost.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|DMIT&lt;br /&gt;
|CN2 GIA&lt;br /&gt;
|少量核心节点&lt;br /&gt;
|不支持&lt;br /&gt;
|https://dmit.io&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Vultr&lt;br /&gt;
|优化线路&lt;br /&gt;
|全球&lt;br /&gt;
|不支持&lt;br /&gt;
|https://vultr.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install software-properties-common -y&lt;br /&gt;
 sudo add-apt-repository ppa:deadsnakes/ppa -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
===== 编译安装 =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev -y&lt;br /&gt;
 wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz&lt;br /&gt;
 tar -xf Python-3.10.15.tgz&lt;br /&gt;
 cd Python-3.10.15&lt;br /&gt;
 ./configure --enable-optimizations&lt;br /&gt;
 make -j$(nproc)&lt;br /&gt;
 sudo make altinstall&lt;br /&gt;
&lt;br /&gt;
 $which pip3.10&lt;br /&gt;
 /usr/local/bin/pip3.10&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
 0 */2 * * * root echo &amp;quot;do rmt ip update&amp;quot; | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash /home/jim/.tools/segwcfg/tools/ovpnipupd.sh /etc/openvpn/cHK12.conf 2&amp;gt;&amp;amp;1 | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
===== debugs =====&lt;br /&gt;
 export TZ=Asia/Shanghai &amp;amp;&amp;amp; bash ./client.sCOM.conf.sh --client-prefix vhk01c --client-name vhk01c2106b26 --key-expire 1 --ip-idx 18 --vpn-server 123.207.218.117 --vpn-port 9093 --vpn-subnet 10.8.8.0.24 --vpn-mode sCOM --var-file vars.ffv00&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== Docker NFS ======&lt;br /&gt;
    environment:&lt;br /&gt;
      - NFS_EXPORT_0=/var/www *(rw,sync,no_subtree_check,no_root_squash)&lt;br /&gt;
      - NFS_EXPORT_1=/etc/letsencrypt *(rw,sync,no_subtree_check,no_root_squash)&lt;br /&gt;
&lt;br /&gt;
 showmount -e 192.168.31.99&lt;br /&gt;
 sudo mount -t nfs -o vers=3 192.168.31.99:/etc/letsencrypt /mnt&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 openssl s_client -showcerts -connect ffvpn.net:443 &amp;lt;/dev/null 2&amp;gt;/dev/null|openssl x509 -outform PEM &amp;gt;$secroot/dockimage/etc/docker/certs.d/ffvpn.net/ffvpn.crt&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
 Host: (avoid container fail to create dir in volume mapped dir)&lt;br /&gt;
 chown -R 1000:1000 ~/tools/segwcfg&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== debugs ======&lt;br /&gt;
 $docker compose  -f nginx.front.yml up -d ngix_ffvpn_net&lt;br /&gt;
 ngix_ffvpn_net Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/default/grub&lt;br /&gt;
 GRUB_CMDLINE_LINUX=&amp;quot;cgroup_enable=memory swapaccount=1&amp;quot;&lt;br /&gt;
 sudo update-grub&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Miscs =====&lt;br /&gt;
 echo &amp;quot;appuser ALL=(ALL) NOPASSWD:ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E4%B8%8A%E6%B5%B7%E8%B4%9D%E5%B0%94&amp;diff=346</id>
		<title>上海贝尔</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E4%B8%8A%E6%B5%B7%E8%B4%9D%E5%B0%94&amp;diff=346"/>
		<updated>2026-04-18T17:02:48Z</updated>

		<summary type="html">&lt;p&gt;Jim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|Title&lt;br /&gt;
|User&lt;br /&gt;
|PA&lt;br /&gt;
|PB&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|jd-biz&lt;br /&gt;
|ccmall-jd&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|https://lai.jd.com/lai/index&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|paypal&lt;br /&gt;
|&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|https://lai.jd.com/lai/index&lt;br /&gt;
|&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|1107389&lt;br /&gt;
|1352458&lt;br /&gt;
|4v3c&lt;br /&gt;
|&lt;br /&gt;
|https://ruitonghl.com/clientarea&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|ali-shop&lt;br /&gt;
|120316489@qq.com&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4v36&lt;br /&gt;
|q8680&lt;br /&gt;
|https://b.alipay.com/page/home&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|openai&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|https://platform.openai.com/overview&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|miniAPP&lt;br /&gt;
|ccmall&lt;br /&gt;
|Jq17&lt;br /&gt;
|&lt;br /&gt;
|jim.qiu@hotmail.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|CCltop&lt;br /&gt;
|&lt;br /&gt;
|xuzhou&lt;br /&gt;
|&lt;br /&gt;
|JBJGW-XN49T-Q2HR7-3BK2B-3GPKM&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|Title&lt;br /&gt;
|User&lt;br /&gt;
|PA&lt;br /&gt;
|PB&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|EPSON_LQ-610K&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|http://192.168.31.96:631/printers/EPSON_LQ-610K&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|南京银行&lt;br /&gt;
|13524584011&lt;br /&gt;
|4v3c&lt;br /&gt;
|3296&lt;br /&gt;
|6217770141948277&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|江苏银行&lt;br /&gt;
|13524584011&lt;br /&gt;
|Jq17&lt;br /&gt;
|usb:821&lt;br /&gt;
|p:3296&lt;br /&gt;
|https://ebank.jsbchina.cn/newperbank/&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|工商银行&lt;br /&gt;
|6222001001115230683&lt;br /&gt;
|Jq17&lt;br /&gt;
|&lt;br /&gt;
|ud:3296&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|宁波银行&lt;br /&gt;
|6222810001291419&lt;br /&gt;
|Web:821&lt;br /&gt;
|Pin:821&lt;br /&gt;
|p:3296&lt;br /&gt;
|http://www.nbcb.com.cn/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|6227780428203104&lt;br /&gt;
|821&lt;br /&gt;
|680&lt;br /&gt;
|3296&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|上海银行&lt;br /&gt;
|6251939055773388&lt;br /&gt;
|821&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|农商银行&lt;br /&gt;
|6231626031038241547&lt;br /&gt;
|&lt;br /&gt;
|827?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|6226113130283936&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|7528&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|招商银行&lt;br /&gt;
|6226090213487222&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|中国银行&lt;br /&gt;
|6259063102501999&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|公安&lt;br /&gt;
|913101203015385922&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|税务&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|楚玉&lt;br /&gt;
|上海楚玉网络科技有限公司&lt;br /&gt;
|2900171523201 &lt;br /&gt;
|招商银行股份有限公司上海金桥支行 121912864810101&lt;br /&gt;
|上海市嘉定区新成路468弄500号JT12158室&lt;br /&gt;
|统一信用代码: 913101203015385922&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|310226301538592&lt;br /&gt;
|91310120301538592226643&lt;br /&gt;
|税务授权4v36G&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|阿里云计算有限公司&lt;br /&gt;
|招商银行杭州高新支行（联行号：308331012079）&lt;br /&gt;
|5719 0549 3610 7020 2021 2801&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|微众&lt;br /&gt;
|上海楚玉网络科技有限公司企业贷款专用户&lt;br /&gt;
|3296&lt;br /&gt;
|9999677358090100146816&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|app:135:qwg07522&lt;br /&gt;
|app:9592:qw82&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|长城证券&lt;br /&gt;
|300000026640&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|300000026982&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|ETC&lt;br /&gt;
|0195284570&lt;br /&gt;
|query: 821&lt;br /&gt;
|trade:666666&lt;br /&gt;
|终端号:800195284570&lt;br /&gt;
|sptcc.com&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|恒创科技&lt;br /&gt;
|13524584011&lt;br /&gt;
|!zx&lt;br /&gt;
|yellowjim@qq.com&lt;br /&gt;
|154.204.32.185&lt;br /&gt;
|https://www.henghost.com/&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|156.245.17.73&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|京东&lt;br /&gt;
|jim.qiu&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|12123&lt;br /&gt;
|13524584011&lt;br /&gt;
|4c&lt;br /&gt;
|&lt;br /&gt;
|gab.122.gov.cn&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Baidu&lt;br /&gt;
|qiuwugang&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Xiaomi&lt;br /&gt;
|xx&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Gmail&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|Jq17&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Twitter&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
|wqiu@wqiu56333627&lt;br /&gt;
|https://twitter.com/home&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Gmail&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|Jq17&lt;br /&gt;
|&lt;br /&gt;
|danbingame@gmail.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|OPENVPN&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Facebook&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|Jq21&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Paypal&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c2f&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|https://developer.paypal.com/docs/checkout/integrate/&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|OKEX&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c2F&lt;br /&gt;
|13524584011&lt;br /&gt;
|cash:4c6&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|opensource.com&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|&lt;br /&gt;
|ffvpn&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Office2010&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|4DQ7Y-2XB2P-BMYVC-FXB36-HTRJC&lt;br /&gt;
|86J34-WFJBM-QXKQW-PTHRW-9TX86&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|GitHub&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c26&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|https://github.com/&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|DoMain.com&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c2F&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|https://www1.domain.com/controlpanel/foundation/&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Baidu&lt;br /&gt;
|qiuwugang&lt;br /&gt;
|4v3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Hotmail&lt;br /&gt;
|jim.qiu@hotmail.com&lt;br /&gt;
|4c26&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|VS Code&lt;br /&gt;
|jim.qiu@hotmail.com&lt;br /&gt;
|&lt;br /&gt;
|BEA373621LOYm2VRkog18B3QnJcLRfQP&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|AWS&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c2F&lt;br /&gt;
|aws.amazon.com&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|苏K&lt;br /&gt;
|C020000232&lt;br /&gt;
|&lt;br /&gt;
|LNPA7PBD7BG046165&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|沪B&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Onstar&lt;br /&gt;
|13524584011&lt;br /&gt;
|oper:821&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|wiki&lt;br /&gt;
|&lt;br /&gt;
|https://www.youtube.com/watch?v=JeR1gCa6wVI&lt;br /&gt;
|jim&lt;br /&gt;
|J21&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|apple&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|J07&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|tencent cloud&lt;br /&gt;
|100023522656&lt;br /&gt;
|120316489@qq.com&lt;br /&gt;
|4v6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|apple id&lt;br /&gt;
|Th112211&lt;br /&gt;
|朋友:cheng111&lt;br /&gt;
|工作:cheng222&lt;br /&gt;
|父母:cheng333&lt;br /&gt;
|生日:1990-01-01&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|富途牛牛&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|1QZ2x&lt;br /&gt;
|8268&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|Title&lt;br /&gt;
|User&lt;br /&gt;
|PA&lt;br /&gt;
|PB&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|yellowjim@qq.com&lt;br /&gt;
|!Z2x&lt;br /&gt;
|standalone pw&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|binance &lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|&lt;br /&gt;
|4v3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|paxful&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|PH&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|yellowjim3322&lt;br /&gt;
|4v3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|sms-activate&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|1z2x&lt;br /&gt;
|&lt;br /&gt;
|https://sms-activate.org/getNumber&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=345</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=345"/>
		<updated>2026-04-15T13:15:24Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* Docker Pods setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''CN2 VPS''' ====&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|平台&lt;br /&gt;
|线路类型&lt;br /&gt;
|节点覆盖&lt;br /&gt;
|国内支付&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|萤光云&lt;br /&gt;
|CN2优化&lt;br /&gt;
|全球&lt;br /&gt;
|支付宝/微信&lt;br /&gt;
|https://bit.ly/ygcloud-cn2&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|LightNode&lt;br /&gt;
|CN2多线路可选&lt;br /&gt;
|全球&lt;br /&gt;
|支付宝/微信&lt;br /&gt;
|https://bit.ly/lightnode-cn&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|搬瓦工&lt;br /&gt;
|CN2 GIA/GT&lt;br /&gt;
|亚洲为主&lt;br /&gt;
|不支持&lt;br /&gt;
|https://bandwagonhost.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|DMIT&lt;br /&gt;
|CN2 GIA&lt;br /&gt;
|少量核心节点&lt;br /&gt;
|不支持&lt;br /&gt;
|https://dmit.io&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Vultr&lt;br /&gt;
|优化线路&lt;br /&gt;
|全球&lt;br /&gt;
|不支持&lt;br /&gt;
|https://vultr.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install software-properties-common -y&lt;br /&gt;
 sudo add-apt-repository ppa:deadsnakes/ppa -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
===== 编译安装 =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev -y&lt;br /&gt;
 wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz&lt;br /&gt;
 tar -xf Python-3.10.15.tgz&lt;br /&gt;
 cd Python-3.10.15&lt;br /&gt;
 ./configure --enable-optimizations&lt;br /&gt;
 make -j$(nproc)&lt;br /&gt;
 sudo make altinstall&lt;br /&gt;
&lt;br /&gt;
 $which pip3.10&lt;br /&gt;
 /usr/local/bin/pip3.10&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
 0 */2 * * * root echo &amp;quot;do rmt ip update&amp;quot; | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash /home/jim/.tools/segwcfg/tools/ovpnipupd.sh /etc/openvpn/cHK12.conf 2&amp;gt;&amp;amp;1 | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== Docker NFS ======&lt;br /&gt;
    environment:&lt;br /&gt;
      - NFS_EXPORT_0=/var/www *(rw,sync,no_subtree_check,no_root_squash)&lt;br /&gt;
      - NFS_EXPORT_1=/etc/letsencrypt *(rw,sync,no_subtree_check,no_root_squash)&lt;br /&gt;
&lt;br /&gt;
 showmount -e 192.168.31.99&lt;br /&gt;
 sudo mount -t nfs -o vers=3 192.168.31.99:/etc/letsencrypt /mnt&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 openssl s_client -showcerts -connect ffvpn.net:443 &amp;lt;/dev/null 2&amp;gt;/dev/null|openssl x509 -outform PEM &amp;gt;$secroot/dockimage/etc/docker/certs.d/ffvpn.net/ffvpn.crt&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
 Host: (avoid container fail to create dir in volume mapped dir)&lt;br /&gt;
 chown -R 1000:1000 ~/tools/segwcfg&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== debugs ======&lt;br /&gt;
 $docker compose  -f nginx.front.yml up -d ngix_ffvpn_net&lt;br /&gt;
 ngix_ffvpn_net Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/default/grub&lt;br /&gt;
 GRUB_CMDLINE_LINUX=&amp;quot;cgroup_enable=memory swapaccount=1&amp;quot;&lt;br /&gt;
 sudo update-grub&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Miscs =====&lt;br /&gt;
 echo &amp;quot;appuser ALL=(ALL) NOPASSWD:ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=344</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=344"/>
		<updated>2026-04-13T13:05:14Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* openvpn/macvlan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''CN2 VPS''' ====&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|平台&lt;br /&gt;
|线路类型&lt;br /&gt;
|节点覆盖&lt;br /&gt;
|国内支付&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|萤光云&lt;br /&gt;
|CN2优化&lt;br /&gt;
|全球&lt;br /&gt;
|支付宝/微信&lt;br /&gt;
|https://bit.ly/ygcloud-cn2&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|LightNode&lt;br /&gt;
|CN2多线路可选&lt;br /&gt;
|全球&lt;br /&gt;
|支付宝/微信&lt;br /&gt;
|https://bit.ly/lightnode-cn&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|搬瓦工&lt;br /&gt;
|CN2 GIA/GT&lt;br /&gt;
|亚洲为主&lt;br /&gt;
|不支持&lt;br /&gt;
|https://bandwagonhost.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|DMIT&lt;br /&gt;
|CN2 GIA&lt;br /&gt;
|少量核心节点&lt;br /&gt;
|不支持&lt;br /&gt;
|https://dmit.io&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Vultr&lt;br /&gt;
|优化线路&lt;br /&gt;
|全球&lt;br /&gt;
|不支持&lt;br /&gt;
|https://vultr.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install software-properties-common -y&lt;br /&gt;
 sudo add-apt-repository ppa:deadsnakes/ppa -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
===== 编译安装 =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev -y&lt;br /&gt;
 wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz&lt;br /&gt;
 tar -xf Python-3.10.15.tgz&lt;br /&gt;
 cd Python-3.10.15&lt;br /&gt;
 ./configure --enable-optimizations&lt;br /&gt;
 make -j$(nproc)&lt;br /&gt;
 sudo make altinstall&lt;br /&gt;
&lt;br /&gt;
 $which pip3.10&lt;br /&gt;
 /usr/local/bin/pip3.10&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
 0 */2 * * * root echo &amp;quot;do rmt ip update&amp;quot; | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash /home/jim/.tools/segwcfg/tools/ovpnipupd.sh /etc/openvpn/cHK12.conf 2&amp;gt;&amp;amp;1 | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 openssl s_client -showcerts -connect ffvpn.net:443 &amp;lt;/dev/null 2&amp;gt;/dev/null|openssl x509 -outform PEM &amp;gt;$secroot/dockimage/etc/docker/certs.d/ffvpn.net/ffvpn.crt&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
 Host: (avoid container fail to create dir in volume mapped dir)&lt;br /&gt;
 chown -R 1000:1000 ~/tools/segwcfg&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== debugs ======&lt;br /&gt;
 $docker compose  -f nginx.front.yml up -d ngix_ffvpn_net&lt;br /&gt;
 ngix_ffvpn_net Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.&lt;br /&gt;
&lt;br /&gt;
 sudo nano /etc/default/grub&lt;br /&gt;
 GRUB_CMDLINE_LINUX=&amp;quot;cgroup_enable=memory swapaccount=1&amp;quot;&lt;br /&gt;
 sudo update-grub&lt;br /&gt;
 sudo reboot&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Miscs =====&lt;br /&gt;
 echo &amp;quot;appuser ALL=(ALL) NOPASSWD:ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E4%B8%8A%E6%B5%B7%E8%B4%9D%E5%B0%94&amp;diff=343</id>
		<title>上海贝尔</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E4%B8%8A%E6%B5%B7%E8%B4%9D%E5%B0%94&amp;diff=343"/>
		<updated>2026-04-03T10:01:14Z</updated>

		<summary type="html">&lt;p&gt;Jim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|Title&lt;br /&gt;
|User&lt;br /&gt;
|PA&lt;br /&gt;
|PB&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|jd-biz&lt;br /&gt;
|ccmall-jd&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|https://lai.jd.com/lai/index&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|1107389&lt;br /&gt;
|1352458&lt;br /&gt;
|4v3c&lt;br /&gt;
|&lt;br /&gt;
|https://ruitonghl.com/clientarea&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|ali-shop&lt;br /&gt;
|120316489@qq.com&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4v36&lt;br /&gt;
|q8680&lt;br /&gt;
|https://b.alipay.com/page/home&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|openai&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|https://platform.openai.com/overview&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|miniAPP&lt;br /&gt;
|ccmall&lt;br /&gt;
|Jq17&lt;br /&gt;
|&lt;br /&gt;
|jim.qiu@hotmail.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|CCltop&lt;br /&gt;
|&lt;br /&gt;
|xuzhou&lt;br /&gt;
|&lt;br /&gt;
|JBJGW-XN49T-Q2HR7-3BK2B-3GPKM&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|Title&lt;br /&gt;
|User&lt;br /&gt;
|PA&lt;br /&gt;
|PB&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|EPSON_LQ-610K&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|http://192.168.31.96:631/printers/EPSON_LQ-610K&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|南京银行&lt;br /&gt;
|13524584011&lt;br /&gt;
|4v3c&lt;br /&gt;
|3296&lt;br /&gt;
|6217770141948277&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|江苏银行&lt;br /&gt;
|13524584011&lt;br /&gt;
|Jq17&lt;br /&gt;
|usb:821&lt;br /&gt;
|p:3296&lt;br /&gt;
|https://ebank.jsbchina.cn/newperbank/&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|工商银行&lt;br /&gt;
|6222001001115230683&lt;br /&gt;
|Jq17&lt;br /&gt;
|&lt;br /&gt;
|ud:3296&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|宁波银行&lt;br /&gt;
|6222810001291419&lt;br /&gt;
|Web:821&lt;br /&gt;
|Pin:821&lt;br /&gt;
|p:3296&lt;br /&gt;
|http://www.nbcb.com.cn/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|6227780428203104&lt;br /&gt;
|821&lt;br /&gt;
|680&lt;br /&gt;
|3296&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|上海银行&lt;br /&gt;
|6251939055773388&lt;br /&gt;
|821&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|农商银行&lt;br /&gt;
|6231626031038241547&lt;br /&gt;
|&lt;br /&gt;
|827?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|6226113130283936&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|7528&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|招商银行&lt;br /&gt;
|6226090213487222&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|中国银行&lt;br /&gt;
|6259063102501999&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|公安&lt;br /&gt;
|913101203015385922&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|税务&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|楚玉&lt;br /&gt;
|上海楚玉网络科技有限公司&lt;br /&gt;
|2900171523201 &lt;br /&gt;
|招商银行股份有限公司上海金桥支行 121912864810101&lt;br /&gt;
|上海市嘉定区新成路468弄500号JT12158室&lt;br /&gt;
|统一信用代码: 913101203015385922&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|310226301538592&lt;br /&gt;
|91310120301538592226643&lt;br /&gt;
|税务授权4v36G&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|阿里云计算有限公司&lt;br /&gt;
|招商银行杭州高新支行（联行号：308331012079）&lt;br /&gt;
|5719 0549 3610 7020 2021 2801&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|微众&lt;br /&gt;
|上海楚玉网络科技有限公司企业贷款专用户&lt;br /&gt;
|3296&lt;br /&gt;
|9999677358090100146816&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|app:135:qwg07522&lt;br /&gt;
|app:9592:qw82&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|长城证券&lt;br /&gt;
|300000026640&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|300000026982&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|ETC&lt;br /&gt;
|0195284570&lt;br /&gt;
|query: 821&lt;br /&gt;
|trade:666666&lt;br /&gt;
|终端号:800195284570&lt;br /&gt;
|sptcc.com&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|恒创科技&lt;br /&gt;
|13524584011&lt;br /&gt;
|!zx&lt;br /&gt;
|yellowjim@qq.com&lt;br /&gt;
|154.204.32.185&lt;br /&gt;
|https://www.henghost.com/&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|156.245.17.73&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|京东&lt;br /&gt;
|jim.qiu&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|12123&lt;br /&gt;
|13524584011&lt;br /&gt;
|4c&lt;br /&gt;
|&lt;br /&gt;
|gab.122.gov.cn&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Baidu&lt;br /&gt;
|qiuwugang&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Xiaomi&lt;br /&gt;
|xx&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Gmail&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|Jq17&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Twitter&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
|wqiu@wqiu56333627&lt;br /&gt;
|https://twitter.com/home&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Gmail&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|Jq17&lt;br /&gt;
|&lt;br /&gt;
|danbingame@gmail.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|OPENVPN&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Facebook&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|Jq21&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Paypal&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c2f&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|https://developer.paypal.com/docs/checkout/integrate/&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|OKEX&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c2F&lt;br /&gt;
|13524584011&lt;br /&gt;
|cash:4c6&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|opensource.com&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|&lt;br /&gt;
|ffvpn&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Office2010&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|4DQ7Y-2XB2P-BMYVC-FXB36-HTRJC&lt;br /&gt;
|86J34-WFJBM-QXKQW-PTHRW-9TX86&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|GitHub&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c26&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|https://github.com/&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|DoMain.com&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c2F&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|https://www1.domain.com/controlpanel/foundation/&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Baidu&lt;br /&gt;
|qiuwugang&lt;br /&gt;
|4v3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Hotmail&lt;br /&gt;
|jim.qiu@hotmail.com&lt;br /&gt;
|4c26&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|VS Code&lt;br /&gt;
|jim.qiu@hotmail.com&lt;br /&gt;
|&lt;br /&gt;
|BEA373621LOYm2VRkog18B3QnJcLRfQP&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|AWS&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c2F&lt;br /&gt;
|aws.amazon.com&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|苏K&lt;br /&gt;
|C020000232&lt;br /&gt;
|&lt;br /&gt;
|LNPA7PBD7BG046165&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|沪B&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Onstar&lt;br /&gt;
|13524584011&lt;br /&gt;
|oper:821&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|wiki&lt;br /&gt;
|&lt;br /&gt;
|https://www.youtube.com/watch?v=JeR1gCa6wVI&lt;br /&gt;
|jim&lt;br /&gt;
|J21&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|apple&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|J07&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|tencent cloud&lt;br /&gt;
|100023522656&lt;br /&gt;
|120316489@qq.com&lt;br /&gt;
|4v6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|apple id&lt;br /&gt;
|Th112211&lt;br /&gt;
|朋友:cheng111&lt;br /&gt;
|工作:cheng222&lt;br /&gt;
|父母:cheng333&lt;br /&gt;
|生日:1990-01-01&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|富途牛牛&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|1QZ2x&lt;br /&gt;
|8268&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|Title&lt;br /&gt;
|User&lt;br /&gt;
|PA&lt;br /&gt;
|PB&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|yellowjim@qq.com&lt;br /&gt;
|!Z2x&lt;br /&gt;
|standalone pw&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|binance &lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|&lt;br /&gt;
|4v3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|paxful&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|PH&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|yellowjim3322&lt;br /&gt;
|4v3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|sms-activate&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|1z2x&lt;br /&gt;
|&lt;br /&gt;
|https://sms-activate.org/getNumber&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E4%B8%8A%E6%B5%B7%E8%B4%9D%E5%B0%94&amp;diff=342</id>
		<title>上海贝尔</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E4%B8%8A%E6%B5%B7%E8%B4%9D%E5%B0%94&amp;diff=342"/>
		<updated>2026-04-03T09:54:23Z</updated>

		<summary type="html">&lt;p&gt;Jim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|Title&lt;br /&gt;
|User&lt;br /&gt;
|PA&lt;br /&gt;
|PB&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|jd-biz&lt;br /&gt;
|ccmall-jd&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|https://lai.jd.com/lai/index&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|1107389&lt;br /&gt;
|1352458&lt;br /&gt;
|4v3c&lt;br /&gt;
|&lt;br /&gt;
|https://ruitonghl.com/clientarea&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|ali-shop&lt;br /&gt;
|120316489@qq.com&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4v36&lt;br /&gt;
|q8680&lt;br /&gt;
|https://b.alipay.com/page/home&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|openai&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|https://platform.openai.com/overview&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|miniAPP&lt;br /&gt;
|ccmall&lt;br /&gt;
|Jq17&lt;br /&gt;
|&lt;br /&gt;
|jim.qiu@hotmail.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|CCltop&lt;br /&gt;
|&lt;br /&gt;
|xuzhou&lt;br /&gt;
|&lt;br /&gt;
|JBJGW-XN49T-Q2HR7-3BK2B-3GPKM&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|Title&lt;br /&gt;
|User&lt;br /&gt;
|PA&lt;br /&gt;
|PB&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|EPSON_LQ-610K&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|http://192.168.31.96:631/printers/EPSON_LQ-610K&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|南京银行&lt;br /&gt;
|13524584011&lt;br /&gt;
|4v3c&lt;br /&gt;
|3296&lt;br /&gt;
|6217770141948277&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|江苏银行&lt;br /&gt;
|13524584011&lt;br /&gt;
|Jq17&lt;br /&gt;
|usb:821&lt;br /&gt;
|p:3296&lt;br /&gt;
|https://ebank.jsbchina.cn/newperbank/&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|工商银行&lt;br /&gt;
|6222001001115230683&lt;br /&gt;
|Jq17&lt;br /&gt;
|&lt;br /&gt;
|ud:3296&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|宁波银行&lt;br /&gt;
|6222810001291419&lt;br /&gt;
|Web:821&lt;br /&gt;
|Pin:821&lt;br /&gt;
|p:3296&lt;br /&gt;
|http://www.nbcb.com.cn/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|6227780428203104&lt;br /&gt;
|821&lt;br /&gt;
|680&lt;br /&gt;
|3296&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|上海银行&lt;br /&gt;
|6251939055773388&lt;br /&gt;
|821&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|农商银行&lt;br /&gt;
|6231626031038241547&lt;br /&gt;
|&lt;br /&gt;
|827?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|6226113130283936&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|7528&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|招商银行&lt;br /&gt;
|6226090213487222&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|公安&lt;br /&gt;
|913101203015385922&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|税务&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|楚玉&lt;br /&gt;
|上海楚玉网络科技有限公司&lt;br /&gt;
|2900171523201 &lt;br /&gt;
|招商银行股份有限公司上海金桥支行 121912864810101&lt;br /&gt;
|上海市嘉定区新成路468弄500号JT12158室&lt;br /&gt;
|统一信用代码: 913101203015385922&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|310226301538592&lt;br /&gt;
|91310120301538592226643&lt;br /&gt;
|税务授权4v36G&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|阿里云计算有限公司&lt;br /&gt;
|招商银行杭州高新支行（联行号：308331012079）&lt;br /&gt;
|5719 0549 3610 7020 2021 2801&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|微众&lt;br /&gt;
|上海楚玉网络科技有限公司企业贷款专用户&lt;br /&gt;
|3296&lt;br /&gt;
|9999677358090100146816&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|app:135:qwg07522&lt;br /&gt;
|app:9592:qw82&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|长城证券&lt;br /&gt;
|300000026640&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|300000026982&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|ETC&lt;br /&gt;
|0195284570&lt;br /&gt;
|query: 821&lt;br /&gt;
|trade:666666&lt;br /&gt;
|终端号:800195284570&lt;br /&gt;
|sptcc.com&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|恒创科技&lt;br /&gt;
|13524584011&lt;br /&gt;
|!zx&lt;br /&gt;
|yellowjim@qq.com&lt;br /&gt;
|154.204.32.185&lt;br /&gt;
|https://www.henghost.com/&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|156.245.17.73&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|京东&lt;br /&gt;
|jim.qiu&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|12123&lt;br /&gt;
|13524584011&lt;br /&gt;
|4c&lt;br /&gt;
|&lt;br /&gt;
|gab.122.gov.cn&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Baidu&lt;br /&gt;
|qiuwugang&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Xiaomi&lt;br /&gt;
|xx&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Gmail&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|Jq17&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Twitter&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
|wqiu@wqiu56333627&lt;br /&gt;
|https://twitter.com/home&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Gmail&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|Jq17&lt;br /&gt;
|&lt;br /&gt;
|danbingame@gmail.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|OPENVPN&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Facebook&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|Jq21&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Paypal&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c2f&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|https://developer.paypal.com/docs/checkout/integrate/&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|OKEX&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c2F&lt;br /&gt;
|13524584011&lt;br /&gt;
|cash:4c6&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|opensource.com&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|&lt;br /&gt;
|ffvpn&lt;br /&gt;
|4c6&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Office2010&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|4DQ7Y-2XB2P-BMYVC-FXB36-HTRJC&lt;br /&gt;
|86J34-WFJBM-QXKQW-PTHRW-9TX86&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|GitHub&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c26&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|https://github.com/&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|DoMain.com&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c2F&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|https://www1.domain.com/controlpanel/foundation/&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Baidu&lt;br /&gt;
|qiuwugang&lt;br /&gt;
|4v3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Hotmail&lt;br /&gt;
|jim.qiu@hotmail.com&lt;br /&gt;
|4c26&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|VS Code&lt;br /&gt;
|jim.qiu@hotmail.com&lt;br /&gt;
|&lt;br /&gt;
|BEA373621LOYm2VRkog18B3QnJcLRfQP&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|AWS&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|4c2F&lt;br /&gt;
|aws.amazon.com&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|苏K&lt;br /&gt;
|C020000232&lt;br /&gt;
|&lt;br /&gt;
|LNPA7PBD7BG046165&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|沪B&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Onstar&lt;br /&gt;
|13524584011&lt;br /&gt;
|oper:821&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|wiki&lt;br /&gt;
|&lt;br /&gt;
|https://www.youtube.com/watch?v=JeR1gCa6wVI&lt;br /&gt;
|jim&lt;br /&gt;
|J21&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|apple&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|J07&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|tencent cloud&lt;br /&gt;
|100023522656&lt;br /&gt;
|120316489@qq.com&lt;br /&gt;
|4v6&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|apple id&lt;br /&gt;
|Th112211&lt;br /&gt;
|朋友:cheng111&lt;br /&gt;
|工作:cheng222&lt;br /&gt;
|父母:cheng333&lt;br /&gt;
|生日:1990-01-01&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|富途牛牛&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|1QZ2x&lt;br /&gt;
|8268&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|Title&lt;br /&gt;
|User&lt;br /&gt;
|PA&lt;br /&gt;
|PB&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
|yellowjim@qq.com&lt;br /&gt;
|!Z2x&lt;br /&gt;
|standalone pw&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|binance &lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|&lt;br /&gt;
|4v3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|paxful&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|&lt;br /&gt;
|4v36&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|PH&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|yellowjim3322&lt;br /&gt;
|4v3&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|sms-activate&lt;br /&gt;
|qiuwugang@gmail.com&lt;br /&gt;
|1z2x&lt;br /&gt;
|&lt;br /&gt;
|https://sms-activate.org/getNumber&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=341</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=341"/>
		<updated>2026-04-02T11:28:33Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* registry/mirror */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''CN2 VPS''' ====&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|平台&lt;br /&gt;
|线路类型&lt;br /&gt;
|节点覆盖&lt;br /&gt;
|国内支付&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|萤光云&lt;br /&gt;
|CN2优化&lt;br /&gt;
|全球&lt;br /&gt;
|支付宝/微信&lt;br /&gt;
|https://bit.ly/ygcloud-cn2&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|LightNode&lt;br /&gt;
|CN2多线路可选&lt;br /&gt;
|全球&lt;br /&gt;
|支付宝/微信&lt;br /&gt;
|https://bit.ly/lightnode-cn&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|搬瓦工&lt;br /&gt;
|CN2 GIA/GT&lt;br /&gt;
|亚洲为主&lt;br /&gt;
|不支持&lt;br /&gt;
|https://bandwagonhost.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|DMIT&lt;br /&gt;
|CN2 GIA&lt;br /&gt;
|少量核心节点&lt;br /&gt;
|不支持&lt;br /&gt;
|https://dmit.io&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Vultr&lt;br /&gt;
|优化线路&lt;br /&gt;
|全球&lt;br /&gt;
|不支持&lt;br /&gt;
|https://vultr.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install software-properties-common -y&lt;br /&gt;
 sudo add-apt-repository ppa:deadsnakes/ppa -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
===== 编译安装 =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev -y&lt;br /&gt;
 wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz&lt;br /&gt;
 tar -xf Python-3.10.15.tgz&lt;br /&gt;
 cd Python-3.10.15&lt;br /&gt;
 ./configure --enable-optimizations&lt;br /&gt;
 make -j$(nproc)&lt;br /&gt;
 sudo make altinstall&lt;br /&gt;
&lt;br /&gt;
 $which pip3.10&lt;br /&gt;
 /usr/local/bin/pip3.10&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
 0 */2 * * * root echo &amp;quot;do rmt ip update&amp;quot; | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash /home/jim/.tools/segwcfg/tools/ovpnipupd.sh /etc/openvpn/cHK12.conf 2&amp;gt;&amp;amp;1 | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 openssl s_client -showcerts -connect ffvpn.net:443 &amp;lt;/dev/null 2&amp;gt;/dev/null|openssl x509 -outform PEM &amp;gt;$secroot/dockimage/etc/docker/certs.d/ffvpn.net/ffvpn.crt&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
 Host: (avoid container fail to create dir in volume mapped dir)&lt;br /&gt;
 chown -R 1000:1000 ~/tools/segwcfg&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Miscs =====&lt;br /&gt;
 echo &amp;quot;appuser ALL=(ALL) NOPASSWD:ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=340</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=340"/>
		<updated>2026-03-29T12:55:27Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* CN2 VPS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''CN2 VPS''' ====&lt;br /&gt;
&lt;br /&gt;
{| border=0 cellpadding=4 cellspacing=2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:Gray;color:Navy;&amp;quot;&lt;br /&gt;
|平台&lt;br /&gt;
|线路类型&lt;br /&gt;
|节点覆盖&lt;br /&gt;
|国内支付&lt;br /&gt;
|Detail&lt;br /&gt;
|Detail2&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|萤光云&lt;br /&gt;
|CN2优化&lt;br /&gt;
|全球&lt;br /&gt;
|支付宝/微信&lt;br /&gt;
|https://bit.ly/ygcloud-cn2&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|LightNode&lt;br /&gt;
|CN2多线路可选&lt;br /&gt;
|全球&lt;br /&gt;
|支付宝/微信&lt;br /&gt;
|https://bit.ly/lightnode-cn&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|搬瓦工&lt;br /&gt;
|CN2 GIA/GT&lt;br /&gt;
|亚洲为主&lt;br /&gt;
|不支持&lt;br /&gt;
|https://bandwagonhost.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|DMIT&lt;br /&gt;
|CN2 GIA&lt;br /&gt;
|少量核心节点&lt;br /&gt;
|不支持&lt;br /&gt;
|https://dmit.io&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|- style=&amp;quot;background:LightGray;color:Green;&amp;quot;&lt;br /&gt;
|Vultr&lt;br /&gt;
|优化线路&lt;br /&gt;
|全球&lt;br /&gt;
|不支持&lt;br /&gt;
|https://vultr.com&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install software-properties-common -y&lt;br /&gt;
 sudo add-apt-repository ppa:deadsnakes/ppa -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
===== 编译安装 =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev -y&lt;br /&gt;
 wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz&lt;br /&gt;
 tar -xf Python-3.10.15.tgz&lt;br /&gt;
 cd Python-3.10.15&lt;br /&gt;
 ./configure --enable-optimizations&lt;br /&gt;
 make -j$(nproc)&lt;br /&gt;
 sudo make altinstall&lt;br /&gt;
&lt;br /&gt;
 $which pip3.10&lt;br /&gt;
 /usr/local/bin/pip3.10&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
 0 */2 * * * root echo &amp;quot;do rmt ip update&amp;quot; | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash /home/jim/.tools/segwcfg/tools/ovpnipupd.sh /etc/openvpn/cHK12.conf 2&amp;gt;&amp;amp;1 | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
 Host: (avoid container fail to create dir in volume mapped dir)&lt;br /&gt;
 chown -R 1000:1000 ~/tools/segwcfg&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Miscs =====&lt;br /&gt;
 echo &amp;quot;appuser ALL=(ALL) NOPASSWD:ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=339</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=339"/>
		<updated>2026-03-29T12:42:42Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* pxe安装系统 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''CN2 VPS''' ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install software-properties-common -y&lt;br /&gt;
 sudo add-apt-repository ppa:deadsnakes/ppa -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
===== 编译安装 =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev -y&lt;br /&gt;
 wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz&lt;br /&gt;
 tar -xf Python-3.10.15.tgz&lt;br /&gt;
 cd Python-3.10.15&lt;br /&gt;
 ./configure --enable-optimizations&lt;br /&gt;
 make -j$(nproc)&lt;br /&gt;
 sudo make altinstall&lt;br /&gt;
&lt;br /&gt;
 $which pip3.10&lt;br /&gt;
 /usr/local/bin/pip3.10&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
 0 */2 * * * root echo &amp;quot;do rmt ip update&amp;quot; | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash /home/jim/.tools/segwcfg/tools/ovpnipupd.sh /etc/openvpn/cHK12.conf 2&amp;gt;&amp;amp;1 | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
 Host: (avoid container fail to create dir in volume mapped dir)&lt;br /&gt;
 chown -R 1000:1000 ~/tools/segwcfg&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Miscs =====&lt;br /&gt;
 echo &amp;quot;appuser ALL=(ALL) NOPASSWD:ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=338</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=338"/>
		<updated>2026-03-28T08:35:29Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* image operations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install software-properties-common -y&lt;br /&gt;
 sudo add-apt-repository ppa:deadsnakes/ppa -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
===== 编译安装 =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev -y&lt;br /&gt;
 wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz&lt;br /&gt;
 tar -xf Python-3.10.15.tgz&lt;br /&gt;
 cd Python-3.10.15&lt;br /&gt;
 ./configure --enable-optimizations&lt;br /&gt;
 make -j$(nproc)&lt;br /&gt;
 sudo make altinstall&lt;br /&gt;
&lt;br /&gt;
 $which pip3.10&lt;br /&gt;
 /usr/local/bin/pip3.10&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
 0 */2 * * * root echo &amp;quot;do rmt ip update&amp;quot; | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash /home/jim/.tools/segwcfg/tools/ovpnipupd.sh /etc/openvpn/cHK12.conf 2&amp;gt;&amp;amp;1 | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
 Host: (avoid container fail to create dir in volume mapped dir)&lt;br /&gt;
 chown -R 1000:1000 ~/tools/segwcfg&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Miscs =====&lt;br /&gt;
 echo &amp;quot;appuser ALL=(ALL) NOPASSWD:ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=337</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=337"/>
		<updated>2026-03-24T12:39:26Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* image operations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install software-properties-common -y&lt;br /&gt;
 sudo add-apt-repository ppa:deadsnakes/ppa -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
===== 编译安装 =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev -y&lt;br /&gt;
 wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz&lt;br /&gt;
 tar -xf Python-3.10.15.tgz&lt;br /&gt;
 cd Python-3.10.15&lt;br /&gt;
 ./configure --enable-optimizations&lt;br /&gt;
 make -j$(nproc)&lt;br /&gt;
 sudo make altinstall&lt;br /&gt;
&lt;br /&gt;
 $which pip3.10&lt;br /&gt;
 /usr/local/bin/pip3.10&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
 0 */2 * * * root echo &amp;quot;do rmt ip update&amp;quot; | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash /home/jim/.tools/segwcfg/tools/ovpnipupd.sh /etc/openvpn/cHK12.conf 2&amp;gt;&amp;amp;1 | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Miscs =====&lt;br /&gt;
 echo &amp;quot;appuser ALL=(ALL) NOPASSWD:ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=336</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=336"/>
		<updated>2026-03-24T09:54:53Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* docker-compose */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install software-properties-common -y&lt;br /&gt;
 sudo add-apt-repository ppa:deadsnakes/ppa -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
===== 编译安装 =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev -y&lt;br /&gt;
 wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz&lt;br /&gt;
 tar -xf Python-3.10.15.tgz&lt;br /&gt;
 cd Python-3.10.15&lt;br /&gt;
 ./configure --enable-optimizations&lt;br /&gt;
 make -j$(nproc)&lt;br /&gt;
 sudo make altinstall&lt;br /&gt;
&lt;br /&gt;
 $which pip3.10&lt;br /&gt;
 /usr/local/bin/pip3.10&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
 0 */2 * * * root echo &amp;quot;do rmt ip update&amp;quot; | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash /home/jim/.tools/segwcfg/tools/ovpnipupd.sh /etc/openvpn/cHK12.conf 2&amp;gt;&amp;amp;1 | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Miscs =====&lt;br /&gt;
 echo &amp;quot;appuser ALL=(ALL) NOPASSWD:ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=335</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=335"/>
		<updated>2026-03-17T08:26:26Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* registry/mirror */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install software-properties-common -y&lt;br /&gt;
 sudo add-apt-repository ppa:deadsnakes/ppa -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
===== 编译安装 =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev -y&lt;br /&gt;
 wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz&lt;br /&gt;
 tar -xf Python-3.10.15.tgz&lt;br /&gt;
 cd Python-3.10.15&lt;br /&gt;
 ./configure --enable-optimizations&lt;br /&gt;
 make -j$(nproc)&lt;br /&gt;
 sudo make altinstall&lt;br /&gt;
&lt;br /&gt;
 $which pip3.10&lt;br /&gt;
 /usr/local/bin/pip3.10&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
 0 */2 * * * root echo &amp;quot;do rmt ip update&amp;quot; | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash /home/jim/.tools/segwcfg/tools/ovpnipupd.sh /etc/openvpn/cHK12.conf 2&amp;gt;&amp;amp;1 | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
 curl -k -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Miscs =====&lt;br /&gt;
 echo &amp;quot;appuser ALL=(ALL) NOPASSWD:ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=334</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=334"/>
		<updated>2026-03-17T08:08:46Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* registry/mirror */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install software-properties-common -y&lt;br /&gt;
 sudo add-apt-repository ppa:deadsnakes/ppa -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
===== 编译安装 =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev -y&lt;br /&gt;
 wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz&lt;br /&gt;
 tar -xf Python-3.10.15.tgz&lt;br /&gt;
 cd Python-3.10.15&lt;br /&gt;
 ./configure --enable-optimizations&lt;br /&gt;
 make -j$(nproc)&lt;br /&gt;
 sudo make altinstall&lt;br /&gt;
&lt;br /&gt;
 $which pip3.10&lt;br /&gt;
 /usr/local/bin/pip3.10&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
 0 */2 * * * root echo &amp;quot;do rmt ip update&amp;quot; | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash /home/jim/.tools/segwcfg/tools/ovpnipupd.sh /etc/openvpn/cHK12.conf 2&amp;gt;&amp;amp;1 | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 curl --cacert /etc/docker/certs.d/ffvpn.net/ca.crt -X GET https://ffvpn.net/v2/library/sshd/tags/list&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Miscs =====&lt;br /&gt;
 echo &amp;quot;appuser ALL=(ALL) NOPASSWD:ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=333</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=333"/>
		<updated>2026-03-09T09:56:28Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* gcc creat lst file */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install software-properties-common -y&lt;br /&gt;
 sudo add-apt-repository ppa:deadsnakes/ppa -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
===== 编译安装 =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev -y&lt;br /&gt;
 wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz&lt;br /&gt;
 tar -xf Python-3.10.15.tgz&lt;br /&gt;
 cd Python-3.10.15&lt;br /&gt;
 ./configure --enable-optimizations&lt;br /&gt;
 make -j$(nproc)&lt;br /&gt;
 sudo make altinstall&lt;br /&gt;
&lt;br /&gt;
 $which pip3.10&lt;br /&gt;
 /usr/local/bin/pip3.10&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
 0 */2 * * * root echo &amp;quot;do rmt ip update&amp;quot; | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash /home/jim/.tools/segwcfg/tools/ovpnipupd.sh /etc/openvpn/cHK12.conf 2&amp;gt;&amp;amp;1 | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Miscs =====&lt;br /&gt;
 echo &amp;quot;appuser ALL=(ALL) NOPASSWD:ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=332</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=332"/>
		<updated>2026-03-09T05:46:20Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* cron设置 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install software-properties-common -y&lt;br /&gt;
 sudo add-apt-repository ppa:deadsnakes/ppa -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
===== 编译安装 =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev -y&lt;br /&gt;
 wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz&lt;br /&gt;
 tar -xf Python-3.10.15.tgz&lt;br /&gt;
 cd Python-3.10.15&lt;br /&gt;
 ./configure --enable-optimizations&lt;br /&gt;
 make -j$(nproc)&lt;br /&gt;
 sudo make altinstall&lt;br /&gt;
&lt;br /&gt;
 $which pip3.10&lt;br /&gt;
 /usr/local/bin/pip3.10&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
 0 */2 * * * root echo &amp;quot;do rmt ip update&amp;quot; | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash /home/jim/.tools/segwcfg/tools/ovpnipupd.sh /etc/openvpn/cHK12.conf 2&amp;gt;&amp;amp;1 | /home/jim/.tools/segwcfg/tools/logwithprefix &amp;quot;instance-1&amp;quot; &amp;gt;&amp;gt; /tmp/rmtipupd.log &amp;amp;&amp;amp; bash&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=331</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=331"/>
		<updated>2026-03-07T08:40:28Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* 编译安装 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install software-properties-common -y&lt;br /&gt;
 sudo add-apt-repository ppa:deadsnakes/ppa -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
===== 编译安装 =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev -y&lt;br /&gt;
 wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz&lt;br /&gt;
 tar -xf Python-3.10.15.tgz&lt;br /&gt;
 cd Python-3.10.15&lt;br /&gt;
 ./configure --enable-optimizations&lt;br /&gt;
 make -j$(nproc)&lt;br /&gt;
 sudo make altinstall&lt;br /&gt;
&lt;br /&gt;
 $which pip3.10&lt;br /&gt;
 /usr/local/bin/pip3.10&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=330</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=330"/>
		<updated>2026-03-07T08:30:37Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* Pyton安装 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install software-properties-common -y&lt;br /&gt;
 sudo add-apt-repository ppa:deadsnakes/ppa -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
===== 编译安装 =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev -y&lt;br /&gt;
 wget https://www.python.org/ftp/python/3.10.15/Python-3.10.15.tgz&lt;br /&gt;
 tar -xf Python-3.10.15.tgz&lt;br /&gt;
 cd Python-3.10.15&lt;br /&gt;
 ./configure --enable-optimizations&lt;br /&gt;
 make -j$(nproc)&lt;br /&gt;
 sudo make altinstall&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=329</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=329"/>
		<updated>2026-03-07T08:22:20Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* Pyton安装 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install software-properties-common -y&lt;br /&gt;
 sudo add-apt-repository ppa:deadsnakes/ppa -y&lt;br /&gt;
 sudo apt update&lt;br /&gt;
&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=328</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=328"/>
		<updated>2026-03-07T08:07:26Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* PHP安装 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''Pyton安装''' ====&lt;br /&gt;
 sudo apt install python3.10 python3.10-dev python3.10-distutils -y&lt;br /&gt;
&lt;br /&gt;
 pip:&lt;br /&gt;
 curl https://bootstrap.pypa.io/get-pip.py | python3.10&lt;br /&gt;
&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1&lt;br /&gt;
 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2&lt;br /&gt;
 sudo update-alternatives --config python3&lt;br /&gt;
&lt;br /&gt;
==== DNS resolv ====&lt;br /&gt;
 sudo apt install resolvconf&lt;br /&gt;
 sudo vi /etc/resolvconf/resolv.conf.d/head&lt;br /&gt;
 nameserver 223.5.5.5&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=327</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=327"/>
		<updated>2026-03-06T08:50:36Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* Wiki Demos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== gcc creat lst file =====&lt;br /&gt;
 -Wa,-adhlns=&amp;quot;$@.lst&amp;quot;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=326</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=326"/>
		<updated>2026-03-02T07:20:23Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* openvpn/macvlan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=virbr0 -o macvlan_mode=bridge   macvlan-net2&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=172.30.208.0/20 --gateway=172.30.208.1  -o parent=eth0   -o macvlan_mode=bridge   macvlan-net1&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=325</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=325"/>
		<updated>2026-03-01T08:46:37Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* registry/mirror */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 cp /home/jim/cert23.pem /etc/ssl/certs/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-eno2&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=324</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=324"/>
		<updated>2026-02-27T10:59:50Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* Wiki Demos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-eno2&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;jim-qiu_mavgit&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=323</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=323"/>
		<updated>2026-02-24T11:07:26Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* image operations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1 .&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-eno2&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=322</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=322"/>
		<updated>2026-02-24T10:57:51Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* image operations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker build -t sshd:v0.1&lt;br /&gt;
 sudo docker run --rm sshd:v0.1&lt;br /&gt;
 docker tag my-custom-python:v1 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
 docker push 192.168.1.100:5000/my-custom-python:v1&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-eno2&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=321</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=321"/>
		<updated>2026-02-24T10:52:42Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* image operations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
 sudo docker image pull 7ske187f.mirror.aliyuncs.com/library/mysql:8.0&lt;br /&gt;
 sudo docker image tag 7ske187f.mirror.aliyuncs.com/library/mysql:8.0 ffvpn.net/library/mysql:8.0&lt;br /&gt;
 sudo docker image push ffvpn.net/library/mysql:8.0&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-eno2&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=320</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=320"/>
		<updated>2026-02-24T07:18:49Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* openvpn/macvlan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=virbr0 -o macvlan_mode=bridge   macvlan-virbr0&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24                         -o parent=eno2   -o macvlan_mode=bridge   macvlan-eno2&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=319</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=319"/>
		<updated>2026-02-24T06:47:14Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* openvpn/macvlan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.31.0/24 --gateway=192.168.31.96 -o parent=eno1 -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
 sudo docker network create -d macvlan --subnet=192.168.10.0/24 -o parent=eno2 -o macvlan_mode=bridge   macvlan-eno2&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=318</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=318"/>
		<updated>2026-02-24T06:41:51Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* openvpn/macvlan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 sudo docker network create -d macvlan   --subnet=192.168.31.0/24   --gateway=192.168.31.96   -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=317</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=317"/>
		<updated>2026-02-24T06:40:57Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* openvpn/macvlan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
sudo docker network create -d macvlan   --subnet=192.168.31.0/24   --gateway=192.168.31.96   -o parent=eno1   -o macvlan_mode=bridge   macvlan-eno1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=316</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=316"/>
		<updated>2026-02-13T09:05:08Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* docker-compose */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo apt install docker-compose-v2&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=315</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=315"/>
		<updated>2026-02-12T11:00:32Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* g4u */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== disk manage =====&lt;br /&gt;
 vgs&lt;br /&gt;
 lvs&lt;br /&gt;
 vgdisplay -v ubuntu-vg&lt;br /&gt;
 lvdisplay -v /dev/ubuntu-vg/ubuntu-lv&lt;br /&gt;
&lt;br /&gt;
 lvremove /dev/ubuntu-vg/lvol0&lt;br /&gt;
 lvcreate -l 100 ubuntu-vg -n lv-0&lt;br /&gt;
 lvextend -l +1000 /dev/ubuntu-vg/lv-0&lt;br /&gt;
 &lt;br /&gt;
 mkfs -t ext4 /dev/ubuntu-vg/lv-0&lt;br /&gt;
&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=314</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=314"/>
		<updated>2026-02-09T06:43:03Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* registry/mirror */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== image operations ======&lt;br /&gt;
 docker save -o myimages.tar image1:tag1 [image2:tag2]&lt;br /&gt;
 sudo chown cloveropen:cloveropen myimages.tar&lt;br /&gt;
 docker load -i myimage.tar | docker load &amp;lt; myimages.tar&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=313</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=313"/>
		<updated>2026-02-08T13:12:03Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* openvpn/macvlan */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo brctl stp br0 off&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
 ping to host net:&lt;br /&gt;
 sudo ip link add macvlan-shim link br0 type macvlan mode bridge&lt;br /&gt;
 sudo ip addr add 192.168.1.200/24 dev macvlan-shim&lt;br /&gt;
 sudo ip link set macvlan-shim up&lt;br /&gt;
 sudo ip route add 192.168.1.105/32 dev macvlan-shim  # 容器 DHCP IP&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=312</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=312"/>
		<updated>2026-02-08T12:55:43Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
 sudo apt update&lt;br /&gt;
 sudo apt install docker.io&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {-----BEGIN CERTIFICATE-----&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
 sudo tee /etc/docker/daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=311</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=311"/>
		<updated>2026-02-08T12:52:48Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
&lt;br /&gt;
 sudo tee daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=310</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=310"/>
		<updated>2026-02-08T12:52:21Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
&lt;br /&gt;
 sudo tee daemon.json &amp;lt;&amp;lt; EOF&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://ffvpn.net&amp;quot;, &amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
   &amp;quot;exec-opts&amp;quot;: [&amp;quot;native.cgroupdriver=systemd&amp;quot;],&lt;br /&gt;
   &amp;quot;log-driver&amp;quot;: &amp;quot;json-file&amp;quot;,&lt;br /&gt;
   &amp;quot;log-opts&amp;quot;: {&lt;br /&gt;
&lt;br /&gt;
     &amp;quot;max-size&amp;quot;: &amp;quot;100m&amp;quot;&lt;br /&gt;
&lt;br /&gt;
   },&lt;br /&gt;
   &amp;quot;storage-driver&amp;quot;: &amp;quot;overlay2&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=309</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=309"/>
		<updated>2026-02-08T12:47:09Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* registry/mirror */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=308</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=308"/>
		<updated>2026-02-08T12:46:39Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* Docker Pods setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=307</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=307"/>
		<updated>2026-02-08T12:46:06Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* registry/mirror */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== openvpn/macvlan ======&lt;br /&gt;
 sudo sysctl -w net.ipv4.ip_forward=1 &amp;amp;&amp;amp; sudo sysctl -p&lt;br /&gt;
 sudo docker network create -d macvlan \&lt;br /&gt;
  --subnet=SUBNET \&lt;br /&gt;
  --gateway=GATEWAY \&lt;br /&gt;
  -o parent=PHY_IFACE \&lt;br /&gt;
  -o macvlan_mode=bridge  # 显式指定 bridge 模式&lt;br /&gt;
  my-macvlan-net&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=306</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=306"/>
		<updated>2026-02-08T08:48:39Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* Docker inst setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== INSTALL =====&lt;br /&gt;
&lt;br /&gt;
====== docker ======&lt;br /&gt;
&lt;br /&gt;
====== docker-compose ======&lt;br /&gt;
 sudo curl -L &amp;quot;https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)&amp;quot; -o /usr/local/bin/docker-compose&lt;br /&gt;
&lt;br /&gt;
====== registry/mirror ======&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
====== kuberlete ======&lt;br /&gt;
&lt;br /&gt;
====== Docker Pods setup ======&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=305</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=305"/>
		<updated>2026-02-06T07:31:06Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* Docker inst setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== Docker inst setup =====&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 sudo usermod -aG docker $USER&lt;br /&gt;
 newgrp docker&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=304</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=304"/>
		<updated>2026-02-06T06:04:16Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* Docker inst setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== Docker inst setup =====&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
 [jim@k8s-master /etc/ssl/certs]&lt;br /&gt;
 $sudo ln -s /home/jim/cert23.pem cert23.pem&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 [jim@ubuntu96 ~]&lt;br /&gt;
 $sudo docker run -d --name registry -p 443:5000   -v /home/docker.mirror:/var/lib/registry   -v /home/jim/register.cert/ffvpn.net:/certs   -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/cert23.pem   -e REGISTRY_HTTP_TLS_KEY=/certs/privkey23.pem   lk8iycdu.mirror.aliyuncs.com/library/registry:2&lt;br /&gt;
&lt;br /&gt;
 $sudo docker ps&lt;br /&gt;
 CONTAINER ID   IMAGE                                             COMMAND                  CREATED      STATUS        PORTS                                     NAMES&lt;br /&gt;
 24f880e0771f   lk8iycdu.mirror.aliyuncs.com/library/registry:2   &amp;quot;/entrypoint.sh /etc…&amp;quot;   4 days ago   Up 23 hours   0.0.0.0:443-&amp;gt;5000/tcp, :::443-&amp;gt;5000/tcp   registry&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 $docker run -d \&lt;br /&gt;
  --name my-pod-infra \  # 基础容器名（模拟 Pod 名称）&lt;br /&gt;
  -p 8080:80 \          # 主机端口 8080 映射到基础容器的 80 端口（后续实例可复用）&lt;br /&gt;
  registry.k8s.io/pause:3.9&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=303</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=303"/>
		<updated>2026-02-06T02:57:38Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* Docker inst setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== Docker inst setup =====&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
 docker stop my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker start my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
 docker rm -f my-pod-infra my-pod-nginx-1 my-pod-nginx-2&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=302</id>
		<title>系统安装</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=302"/>
		<updated>2026-02-06T02:56:24Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* Docker inst setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==== '''安装apache''' ====&lt;br /&gt;
&lt;br /&gt;
#Change the www-data path from /var/www to /home/www&lt;br /&gt;
#Change the mysql database from /var/lib/mysql to /home/mysql&lt;br /&gt;
#:$sudo vim /etc/mysql/my.cnf&lt;br /&gt;
#:datadir = /home/mysql&lt;br /&gt;
#:$sudo vim /etc/apparmor.d/usr.sbin.mysqld&lt;br /&gt;
#:add two lines:&lt;br /&gt;
#:/home/mysql/ r,&lt;br /&gt;
#:/home/mysql/** rwk,&lt;br /&gt;
#:$sudo /etc/init.d/mysql restart&lt;br /&gt;
&lt;br /&gt;
==== '''pxe安装系统''' ====&lt;br /&gt;
&lt;br /&gt;
==== '''linux命令集''' ====&lt;br /&gt;
===== 用户管理 =====&lt;br /&gt;
 sudo useradd -M -o -r -d /home/mysql -s /bin/bash -c &amp;quot;MySQL Server&amp;quot; -u 27 mysql&lt;br /&gt;
 sudo useradd -m -d /home2/openvpn -s /bin/bash -G jim openvpn&lt;br /&gt;
&lt;br /&gt;
 groupadd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -e 2014-04-21 user01&lt;br /&gt;
#sudo usermod -s /bin/false user01&lt;br /&gt;
#sudo useradd  -d /home/user -G users -c &amp;quot;ssh Users&amp;quot;i -M user01&lt;br /&gt;
&lt;br /&gt;
===== ssh命令用法 =====&lt;br /&gt;
 ssh -l root -R 2290:127.0.0.1:22 192.208.183.206&lt;br /&gt;
 scp -r -P 2290 ~/Music jim@127.0.0.1:~/music/&lt;br /&gt;
&lt;br /&gt;
 #ssh -MNf -l root -R 8080:127.0.0.1:80 yellowjim.com&lt;br /&gt;
 #ssh-keygen -t rsa -C &amp;quot;&amp;lt;your UPI&amp;gt; &amp;lt;your email address&amp;gt;&amp;quot;&lt;br /&gt;
 #ssh-copy-id root@yellowjim.com&lt;br /&gt;
&lt;br /&gt;
 #alias sshL='nohup plink -N -v jim@192.168.1.82 -L 8080:127.0.0.1:8080 -pw 666666 2&amp;gt;&amp;amp;1 ssh.log &amp;amp;'&lt;br /&gt;
 #iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 135.251.9.67&lt;br /&gt;
 #iptables -t nat -D POSTROUTING -s 192.168.2.0/24  -j SNAT --to 135.251.9.67&lt;br /&gt;
&lt;br /&gt;
===== ramfs用法 =====&lt;br /&gt;
在Linux中可以将一部分内存mount为分区来使用，通常称之为RamDisk，分为：Ramdisk, ramfs, tmpfs.&lt;br /&gt;
&lt;br /&gt;
1.Ramdisk&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将Device Drivers --&amp;gt;&amp;gt; Block devices --&amp;gt;&amp;gt; Ramdisk support 支持选上，它下面还有两个选项：第一个设定Ramdisk个数，默认16个；第二个是设定Ramdisk的大小，默认是4096k。&lt;br /&gt;
&lt;br /&gt;
    首先查看一下可用的RamDisk，使用ls /dev/ram*&lt;br /&gt;
&lt;br /&gt;
    然后对/dev/ram0 创建文件系统，运行mke2fs /dev/ram0&lt;br /&gt;
&lt;br /&gt;
    最后挂载 /dev/ram0，运行mount /dev/ram /mnt/test&lt;br /&gt;
&lt;br /&gt;
2.ramfs&lt;br /&gt;
&lt;br /&gt;
    Ramfs顾名思义是内存文件系统，它处于虚拟文件系统（VFS）层，而不像ramdisk那样基于虚拟在内存中的其他文件系统(ex2fs)。&lt;br /&gt;
&lt;br /&gt;
    因而，它无需格式化，可以创建多个，只要内存足够，在创建时可以指定其最大能使用的内存大小。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
    # mount -t ramfs none /testRAM&lt;br /&gt;
&lt;br /&gt;
    缺省情况下，Ramfs被限制最多可使用内存大小的一半。可以通过maxsize（以kbyte为单位）选项来改变。&lt;br /&gt;
    # mount -t ramfs none /testRAM -o maxsize=2000 (创建了一个限定最大使用内存为2M的ramdisk)&lt;br /&gt;
&lt;br /&gt;
3.Tmpfs&lt;br /&gt;
&lt;br /&gt;
    是一个虚拟内存文件系统，它不同于传统的用块设备形式来实现的Ramdisk，也不同于针对物理内存的Ramfs。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs可以使用物理内存，也可以使用交换分区。在Linux内核中，虚拟内存资源由物理内存（RAM）和交换分区组成，这些资源是由内核中的虚拟内存子系统来负责分配和管理。&lt;br /&gt;
&lt;br /&gt;
    Tmpfs向虚拟内存子系统请求页来存储文件，它同Linux的其它请求页的部分一样，不知道分配给自己的页是在内存中还是在交换分区中。同Ramfs一样，其大小也不是固定的，而是随着所需要的空间而动态的增减。&lt;br /&gt;
&lt;br /&gt;
    在编译内核时须将File systems --&amp;gt;&amp;gt; pseudo filesystems --&amp;gt;&amp;gt;  Virtual memory file system support支持选上。&lt;br /&gt;
&lt;br /&gt;
    # mkdir -p /mnt/tmpfs&lt;br /&gt;
&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs&lt;br /&gt;
&lt;br /&gt;
    同样可以在加载时指定tmpfs文件系统大小的最大限制:&lt;br /&gt;
    # mount tmpfs /mnt/tmpfs -t tmpfs -o size=32m&lt;br /&gt;
===== autossh =====&lt;br /&gt;
 root@iZ23wubte21Z:~# cat .alias &lt;br /&gt;
 alias autossh_90='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22094 -f -qTnN -L 121.41.110.99:80:192.168.1.90:80 -p 22090 jim@localhost'&lt;br /&gt;
 alias fw0='iptables -P INPUT DROP &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 80 -j ACCEPT &amp;amp;&amp;amp;  &lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp --dport 22022 -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i lo -j ACCEPT &amp;amp;&amp;amp;&lt;br /&gt;
 iptables -A INPUT -i eth1 -p tcp -s 110.75.102.62 -j ACCEPT'&lt;br /&gt;
&lt;br /&gt;
 root@yellowjim90:~# cat .alias &lt;br /&gt;
 alias autossh_22='export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 22092 -f -qTnN -R 22090:192.168.1.90:22 -p 22022 root@gold4y.com'&lt;br /&gt;
&lt;br /&gt;
===== 3322.org =====&lt;br /&gt;
&lt;br /&gt;
 crontab -e&lt;br /&gt;
 /bin/date | sed 'N;s/\n/ :/' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322&lt;br /&gt;
&lt;br /&gt;
 00,10,20,30,40,50 * * * * /bin/date | /usr/bin/tr '\n' ' ' &amp;gt;&amp;gt; /var/log/3322.org &amp;amp;&amp;amp; /usr/bin/wget -q -O- 'http://yellowjim:666666@members.3322.org/dyndns/update?system=dyndns&amp;amp;hostname=yellowjim.3322.org' &amp;gt;&amp;gt; /var/log/3322.org&lt;br /&gt;
&lt;br /&gt;
==== '''PHP安装''' ====&lt;br /&gt;
===== zlib1g libpng =====&lt;br /&gt;
&lt;br /&gt;
 apt-get install php5-gd&lt;br /&gt;
&lt;br /&gt;
 dpkg -S file——这个文件属于哪个已安装软件包。&lt;br /&gt;
 dpkg -L package——列出软件包中的所有文件。 &lt;br /&gt;
 dpkg -L openssh-server&lt;br /&gt;
&lt;br /&gt;
 apt-get install apt-file&lt;br /&gt;
 apt-file update&lt;br /&gt;
 apt-file search filename&lt;br /&gt;
 apt-file search filename | grep /bin/&lt;br /&gt;
&lt;br /&gt;
===== PHP5 mcrypt =====&lt;br /&gt;
 #mcrypt is not used anymore&lt;br /&gt;
 apt-get install php5-mcrypt libmcrypt4 libmcrypt-dev&lt;br /&gt;
 #mcrypt not used in php7.3.0, alternative way applied and OK.&lt;br /&gt;
&lt;br /&gt;
 //sudo ln -s /etc/php5/conf.d/mcrypt.ini /etc/php5/mods-available&lt;br /&gt;
 sudo php5enmod mcrypt&lt;br /&gt;
 sudo service apache2 restart&lt;br /&gt;
&lt;br /&gt;
===== 20.04 apache-php =====&lt;br /&gt;
 sudo apt-get install -y apache2&lt;br /&gt;
 sudo apt-get install -y php&lt;br /&gt;
 sudo apt-get install -y php-gd&lt;br /&gt;
 sudo apt-get install -y php-mysqli&lt;br /&gt;
 sudo apt-get install -y php-redis&lt;br /&gt;
 sudo apt install -y php-curl&lt;br /&gt;
 sudo apt install -y php-xml&lt;br /&gt;
 sudo apt install -y php-mbstring&lt;br /&gt;
&lt;br /&gt;
 GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
 GRANT ALL PRIVILEGES ON wiki2020.* TO 'wiki'@'192.168.10.%' IDENTIFIED BY &amp;quot;xxx&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
 sudo apt install mercurial&lt;br /&gt;
&lt;br /&gt;
==== '''cron''' ====&lt;br /&gt;
===== cron命令 =====&lt;br /&gt;
 crontab -l&lt;br /&gt;
 crontab -e&lt;br /&gt;
 service cron restart&lt;br /&gt;
===== cron设置 =====&lt;br /&gt;
 * * * * *  cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron1.txt&lt;br /&gt;
 * * * * * sleep 10; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron2.txt&lt;br /&gt;
 #* * * * * sleep 20; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron3.txt&lt;br /&gt;
 #* * * * * sleep 30; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron4.txt&lt;br /&gt;
 #* * * * * sleep 40; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron5.txt&lt;br /&gt;
 #* * * * * sleep 50; cd /home/www/testDanbing &amp;amp;&amp;amp; /usr/bin/php /home/www/testDanbing/do_opmisc.php &amp;gt;&amp;gt;/home/www/testDanbing/cron6.txt&lt;br /&gt;
&lt;br /&gt;
==== Easy RSA ====&lt;br /&gt;
===== basic =====&lt;br /&gt;
 . ./vars&lt;br /&gt;
 1850  ./clean-all&lt;br /&gt;
 1851  ./build-ca&lt;br /&gt;
 1852  ./build-key-server server&lt;br /&gt;
 1855  ./build-key client01&lt;br /&gt;
 1856  ./build-key client02&lt;br /&gt;
 1857  ./build-key client03&lt;br /&gt;
 1858  ./build-key client04&lt;br /&gt;
 1859  ./build-key client05&lt;br /&gt;
 1860  ./build-key client06&lt;br /&gt;
 1861  ./build-key client07&lt;br /&gt;
 1862  ./build-key client08&lt;br /&gt;
 1863  ./build-key client09&lt;br /&gt;
 1864  ./build-key client10&lt;br /&gt;
 1865  ./build-key client00&lt;br /&gt;
&lt;br /&gt;
 /usr/share/doc/openvpn/examples/sample-config-files&lt;br /&gt;
&lt;br /&gt;
==== OPENVPN ====&lt;br /&gt;
===== misc =====&lt;br /&gt;
 ssh -L 192.168.32.62:8096:127.0.0.1:8096 jim@34.173.120.252&lt;br /&gt;
 ssh -L 192.168.32.62:8092:127.0.0.1:8092 root@154.204.45.162&lt;br /&gt;
&lt;br /&gt;
===== route =====&lt;br /&gt;
 Local Route:&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&lt;br /&gt;
 route 192.168.28.0 255.255.252.0 10.8.1.1 net_gateway&lt;br /&gt;
 Remote Route:&lt;br /&gt;
 push &amp;quot;route 192.168.28.0 255.255.252.0 10.8.1.1 vpn_gateway&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ./revoke-full client1&lt;br /&gt;
 crl-verify crl.pem&lt;br /&gt;
&lt;br /&gt;
==== KVM Install ====&lt;br /&gt;
===== Prepare =====&lt;br /&gt;
 sudo apt-get update&lt;br /&gt;
 sudo apt-get install -y linux-tools-$(uname -r)&lt;br /&gt;
 egrep 'vmx|svm' /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysctl.conf&lt;br /&gt;
 net.ipv4.ip_forward = 1&lt;br /&gt;
 /sbin/sysctl -p&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-br0&lt;br /&gt;
&lt;br /&gt;
 DEVICE=br0&lt;br /&gt;
 TYPE=Bridge&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
 BOOTPROTO=static&lt;br /&gt;
 IPADDR=172.16.57.24&lt;br /&gt;
 NETMASK=255.255.255.0&lt;br /&gt;
 GATEWAY=172.16.57.1&lt;br /&gt;
 DNS1=202.96.209.133&lt;br /&gt;
&lt;br /&gt;
 vim /etc/sysconfig/network-scripts/ifcfg-em1&lt;br /&gt;
 DEVICE=em1&lt;br /&gt;
 TYPE=Ethernet&lt;br /&gt;
 ONBOOT=yes&lt;br /&gt;
 BRIDGE=br0&lt;br /&gt;
 NM_CONTROLLED=yes&lt;br /&gt;
&lt;br /&gt;
 /etc/libvirt/qemu.conf&lt;br /&gt;
 vnc_listen = &amp;quot;0.0.0.0&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===== Install Software =====&lt;br /&gt;
&lt;br /&gt;
 yum -y install kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y qemu-kvm bridge-utils virt-manager virt-viewer&lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install -y kvm python-virtinst libvirt  bridge-utils virt-manager qemu-kvm-tools  virt-viewer  virt-v2v libguestfs-tools-c&lt;br /&gt;
&lt;br /&gt;
===== Create VM =====&lt;br /&gt;
====== VM basic ======&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 8192 --vcpus=2 /&lt;br /&gt;
 --disk path=/var/lib/libvirt/images/tomcat_01.img,size=20,format=raw,bus=virtio /&lt;br /&gt;
 --cdrom /var/iso/CentOS-6.7-x86_64-minimal.iso --network bridge=br0,model=virtio /&lt;br /&gt;
 --vnc --accelerate --autostart&lt;br /&gt;
&lt;br /&gt;
 --name    给虚拟机起个名字&lt;br /&gt;
 --ram     分配给虚拟机的内存，单位MB&lt;br /&gt;
 --vcpus   分配给虚拟机的cpu个数&lt;br /&gt;
 --cdrom   指定安装文件的全路径&lt;br /&gt;
 --disk    指定虚拟机img文件路径，如果虚拟机使用lvm分区，这里就指向到lvm的分区就行&lt;br /&gt;
    size    虚拟机文件大小，单位GB&lt;br /&gt;
    bus     虚拟机磁盘使用的总线类型，为了使虚拟机达到好的性能，这里使用virtio&lt;br /&gt;
    cache   虚拟机磁盘的cache类型&lt;br /&gt;
 --network &lt;br /&gt;
    bridge  指定桥接网卡&lt;br /&gt;
    model  网卡模式，这里也是使用性能更好的virtio&lt;br /&gt;
 --graphics 图形参数&lt;br /&gt;
 --boot  hd | cdrom&lt;br /&gt;
 --autostart&lt;br /&gt;
&lt;br /&gt;
 ps aux | grep qemu | grep tomcat_01&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virt-install  --name=tomcat_01 --ram 2048 --vcpus=2 &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/sys.img,size=20,format=raw,bus=virtio &lt;br /&gt;
 --disk path=/home/jim/KVMs/kvm_sql100/data.img,size=80,format=raw,bus=virtio &lt;br /&gt;
 --cdrom /home/jim/KVMs/ubuntu-18.04.5-live-server-amd64.iso &lt;br /&gt;
 --network bridge=br0,model=virtio &lt;br /&gt;
 --vnc --accelerate --force  --autostart&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw SQL100.1.sys.img 40G&lt;br /&gt;
 qemu-img create -f raw SQL100.1.data.img 80G&lt;br /&gt;
&lt;br /&gt;
====== VM 96/100 ======&lt;br /&gt;
 Creat With SYS Disk only:&lt;br /&gt;
 sudo virt-install  --name=BASE200.1 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.1.sys.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat With SYS and Data Disks:&lt;br /&gt;
 virt-install  --name=BASE200.2 --ram 2048 --vcpus=2 \&lt;br /&gt;
 --os-variant=ubuntu20.04 \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/store/KVMs/BASE200.2.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:10 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:10 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 Creat K8S With SYS and Data Disks:&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s --ram 32000 --vcpus=16 \&lt;br /&gt;
 --os-variant=ubuntu20.04  \&lt;br /&gt;
 --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.sys.img,format=raw \&lt;br /&gt;
 --disk path=/home/jim/KVMs/K8S.1.data.img,format=raw \&lt;br /&gt;
 --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 \&lt;br /&gt;
 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 \&lt;br /&gt;
 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ======= PassThrough USB ports: =======&lt;br /&gt;
 Host:&lt;br /&gt;
 # lsusb&lt;br /&gt;
 ...&lt;br /&gt;
 Bus 002 Device 003: ID 18d1:4e11 Google Inc. Nexus One&lt;br /&gt;
 #/usr/bin/qemu-kvm -m 1024 -name f15 -drive file=/images/f15.img,if=virtio -usb -device usb-host,hostbus=2,hostaddr=3&lt;br /&gt;
&lt;br /&gt;
===== Maintain VM =====&lt;br /&gt;
 virsh dumpxml tomcat_01 &amp;gt; tomcat_01.xml 将最新的虚拟机配置重定向到其配置文件中&lt;br /&gt;
 virsh define tomcat_01.xml&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw test_add.img 100G 创建一块100G的磁盘&lt;br /&gt;
 virsh attach-disk tomcat_01 /var/lib/libvirt/images/test_add.img vdb --cache none 动态添加磁盘&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model rtl8139 --config&lt;br /&gt;
 virsh attach-interface BASE200.1 --type bridge --source virbr1 --model virtio --config&lt;br /&gt;
&lt;br /&gt;
 virt-clone --connect qemu:///system --original=SQL100.1 --name=BASE --file=/home/jim/KVMs/base.sys.img&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libosinfo-bin&lt;br /&gt;
 osinfo-query os&lt;br /&gt;
 You can restart your domain by running:&lt;br /&gt;
  virsh --connect qemu:///system start BASE200.1.31.82&lt;br /&gt;
&lt;br /&gt;
 sudo apt install libguestfs-tools&lt;br /&gt;
 sudo virt-edit -d BASE200.1.31.2.router /etc/profile.d/rc.local.sh&lt;br /&gt;
&lt;br /&gt;
==== Kubernete Setup ====&lt;br /&gt;
===== VM setup =====&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.1.31.52.k8s.master --ram 4096 --vcpus=2 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.52.k8s.master.sys.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:34 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:34 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
 qemu-img create -f raw K8S.node00.data.img 200G&lt;br /&gt;
 qemu-img create -f raw K8S.node01.data.img 200G&lt;br /&gt;
&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.53.k8s.node00 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.53.k8s.node00.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node00.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:35 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:35 --graphics vnc --accelerate --boot hd&lt;br /&gt;
 sudo virt-install  --name=BASE200.2.31.54.k8s.node01 --ram 8000 --vcpus=4 --os-variant=ubuntu20.04  --disk path=/home/jim/KVMs/BASE200.2.31.54.k8s.node01.sys.img,format=raw --disk path=/home/jim/KVMs/K8S.node01.data.img,format=raw --network bridge=virbr0,model=virtio,mac=52:54:00:c0:1f:36 --network bridge=virbr1,model=virtio,mac=52:54:00:c0:0a:36 --graphics vnc --accelerate --boot hd&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 virsh --connect qemu:///system start BASE200.1.31.52.k8s.master&lt;br /&gt;
&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-master&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node00&lt;br /&gt;
 sudo hostnamectl set-hostname k8s-node01&lt;br /&gt;
&lt;br /&gt;
===== Docker inst setup =====&lt;br /&gt;
 /etc/docker/certs.d/ffvpn.net/ca.crt &amp;lt;--- ubuntu160:/etc/letsencrypt/archive/ffvpn.net/cert23.pem&lt;br /&gt;
 /etc/docker/daemon.json&lt;br /&gt;
 &amp;quot;registry-mirrors&amp;quot;: [&amp;quot;https://lk8iycdu.mirror.aliyuncs.com&amp;quot;],&lt;br /&gt;
&lt;br /&gt;
 docker exec -it my-pod-nginx-1 /bin/s&lt;br /&gt;
&lt;br /&gt;
==== Sys Conf ====&lt;br /&gt;
===== g4u =====&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22022 -j REDIRECT --to-ports 22022&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 8082 -j REDIRECT --to-ports 8082&lt;br /&gt;
 iptables -t nat -A PREROUTING  -p tcp -d 172.16.7.175 -j DNAT --to 10.8.0.2&lt;br /&gt;
 iptables -t nat -I POSTROUTING -p tcp -s 10.8.0.2 -j SNAT --to 172.16.7.175&lt;br /&gt;
&lt;br /&gt;
===== 31.96 =====&lt;br /&gt;
 export AUTOSSH_POLL=20 &amp;amp;&amp;amp; autossh -M 23180 -f -qTnN -R 22622:127.0.0.1:22 -p 22022 root@gold4y.com&lt;br /&gt;
 iptables -t nat -A PREROUTING -p tcp --dport 22096 -j REDIRECT --to-ports 22&lt;br /&gt;
&lt;br /&gt;
 ip rule add from 10.8.0.2 table 1&lt;br /&gt;
 ip route add default via 10.8.0.1 table 1&lt;br /&gt;
&lt;br /&gt;
===== 31.80 =====&lt;br /&gt;
 ip route add 10.8.1.2/32 via 192.168.31.96&lt;br /&gt;
&lt;br /&gt;
===== Jenkins =====&lt;br /&gt;
 192.168.31.91: jim:6&lt;br /&gt;
&lt;br /&gt;
 sudo vi /etc/systemd/logind.conf&lt;br /&gt;
 #HandleLidSwitch=suspend&lt;br /&gt;
 HandleLidSwitch=ignore&lt;br /&gt;
 sudo restart systemd-logind&lt;br /&gt;
&lt;br /&gt;
===== Disk pm =====&lt;br /&gt;
 sudo dd if=/dev/mapper/ubuntu--vg-ubuntu--lv of=/dev/null bs=4M count=1024&lt;br /&gt;
&lt;br /&gt;
==== 20.04 rc.local ====&lt;br /&gt;
 $ sudo vim /lib/systemd/system/rc-local.service&lt;br /&gt;
&lt;br /&gt;
==== IPTABLES STATISTICS ====&lt;br /&gt;
 iptables -N TRAFFIC_IN&lt;br /&gt;
 iptables -N TRAFFIC_OUT&lt;br /&gt;
 iptables -I FORWARD -i tun5 -j TRAFFIC_IN&lt;br /&gt;
 iptables -I FORWARD -o tun5 -j TRAFFIC_OUT&lt;br /&gt;
 iptables -A TRAFFIC_IN --src 10.8.5.6&lt;br /&gt;
 iptables -A TRAFFIC_OUT --dst 10.8.5.6&lt;br /&gt;
 iptables -L -nv&lt;br /&gt;
 iptables -F TRAFFIC_IN&lt;br /&gt;
 iptables -F TRAFFIC_OUT&lt;br /&gt;
&lt;br /&gt;
==== Win10 WSL ====&lt;br /&gt;
 Windows 10 version 2004 and higher (Build 19041 and higher) or Windows 11&lt;br /&gt;
 Win + R: winver&lt;br /&gt;
 wsl -l -o&lt;br /&gt;
 wsl --set-default-version &amp;lt;Version#&amp;gt;, replacing &amp;lt;Version#&amp;gt; with either 1 or 2.&lt;br /&gt;
 wsl --setdefault &amp;lt;DistributionName&amp;gt;&lt;br /&gt;
 wsl --install -d Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 diskpart&lt;br /&gt;
 &amp;gt;select vdisk file=C:\Users\gsw94\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\ext4.vhdx&lt;br /&gt;
 &amp;gt;compact vdisk&lt;br /&gt;
 &amp;gt;exit&lt;br /&gt;
&lt;br /&gt;
 wsl --list&lt;br /&gt;
 wsl -l -v&lt;br /&gt;
 wsl --list --online&lt;br /&gt;
 wsl --terminate Ubuntu-18.04&lt;br /&gt;
&lt;br /&gt;
 wsl --export Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
 wsl --unregister Ubuntu-18.04&lt;br /&gt;
 wsl --import Ubuntu-18.04 D:\Users\Ubuntu-18.04 D:\Users\Ubuntu-18.04.tar&lt;br /&gt;
&lt;br /&gt;
 /etc/wsl.conf:&lt;br /&gt;
 [automount]&lt;br /&gt;
 enabled = true&lt;br /&gt;
 root = /mnt/&lt;br /&gt;
 options = &amp;quot;metadata,uid=1000,gid=1000,umask=22,fmask=11&amp;quot;&lt;br /&gt;
 mountFsTab = false&lt;br /&gt;
 [user]&lt;br /&gt;
 default = jim&lt;br /&gt;
&lt;br /&gt;
 meld crash issue:&lt;br /&gt;
 sudo apt install gnome-icon-theme&lt;br /&gt;
&lt;br /&gt;
 sz rz:&lt;br /&gt;
 zssh user@host&lt;br /&gt;
 Ctrl+space to entery file transfer mode&lt;br /&gt;
 1. sz file -&amp;gt; Ctrl + Space -&amp;gt; rz&lt;br /&gt;
 2. Ctrl + Space -&amp;gt; sz file  ( file will autoly rz by remote host )&lt;br /&gt;
 3. Ctrl + Space -&amp;gt; suspend  ( enter local shell )&lt;br /&gt;
&lt;br /&gt;
==== PeiRate Formula ====&lt;br /&gt;
&lt;br /&gt;
 P : pei rate&lt;br /&gt;
 W : weight&lt;br /&gt;
 Fr: fee rate, 10%&lt;br /&gt;
 &lt;br /&gt;
 Pi = Sum(Wn)/Wi;&lt;br /&gt;
 Pj = Sum(Wn)/Wj;&lt;br /&gt;
 Pk = Sum(Wn)/Wk;&lt;br /&gt;
&lt;br /&gt;
 PUi = (Pi - 1) * (1 - Fr) + 1&lt;br /&gt;
 PUi = Pi * (1 - Fr)&lt;br /&gt;
&lt;br /&gt;
'''zcjc_order''':&lt;br /&gt;
* usr_id&lt;br /&gt;
* zcjc_id&lt;br /&gt;
* pei_rate = PUi&lt;br /&gt;
* peihaoN (order_num) 1~1000&lt;br /&gt;
* price 100 coins/peihao&lt;br /&gt;
* pei_sum = pei_rate * peihaoN * price&lt;br /&gt;
----&lt;br /&gt;
'''zcjc_Sub''':&lt;br /&gt;
* peihaoN += order.peihaoN&lt;br /&gt;
* pei_sum += Pi * peihaoN * price&lt;br /&gt;
* peihaoN_stored = @ &amp;gt; order.peihaoN ? -= peihaoN  : All: peihaoN_stored += Wj;&lt;br /&gt;
* peisum_stored = @ &amp;gt; pei_sum_i ? -= pei_sum_i  : ~peisum_stored += pei_sum_i&lt;br /&gt;
* Pi = peisum_stored -= pei_sum_i  ? Pi * ( 1 - 10%) : &lt;br /&gt;
* PiHigh = Pi * (1 + (pei_sum0 * (1 - Fr) - peisum_i)/peisum_stored)&lt;br /&gt;
* weight += Wi * (Pio - Pi)/Pio&lt;br /&gt;
&lt;br /&gt;
==== Kubnet ====&lt;br /&gt;
 kubectl get pods -A -o wide&lt;br /&gt;
 kubectl cp /root/frr2-c1/ldpd.conf frr2-0:/etc/frr/ -n frr2&lt;br /&gt;
 kubectl exec -it frr2-0 /bin/bash -n frr2&lt;br /&gt;
&lt;br /&gt;
==== ZCJC operations ====&lt;br /&gt;
 ds zci init&lt;br /&gt;
 ds zci update&lt;br /&gt;
 ds zci fstart (act_finit and act_start, special for zci 5(sh000))&lt;br /&gt;
 ds zci fupdate (act_fupdate act_done)&lt;br /&gt;
 ds zci start&lt;br /&gt;
 &lt;br /&gt;
 ds zci fstart 5&lt;br /&gt;
 ds zci update 5 zci_playerB_points 3030&lt;br /&gt;
 ds zci fupdate 5 3030&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 ds zci fupdate 5 playB_points (playB_points is sh000 end points and update sh000 win_id acoording to playB_points)&lt;br /&gt;
&lt;br /&gt;
==== Wiki Demos ====&lt;br /&gt;
&amp;lt;ul style=&amp;quot;color: red; margin-left: 20px&amp;quot;&amp;gt;&lt;br /&gt;
#abcd&lt;br /&gt;
#efgh&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| stype=&amp;quot;width:75%; height:200px&amp;quot; border='0'&lt;br /&gt;
|-&lt;br /&gt;
|姓名&lt;br /&gt;
|性别&lt;br /&gt;
|年龄&lt;br /&gt;
|- style=&amp;quot;background:navy; color:white&amp;quot;&lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
mediawiki-1.22.5/skins/common/shared.css &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;1&amp;quot; class=&amp;quot;table001&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
|姓名A&lt;br /&gt;
|性别A&lt;br /&gt;
|年龄A&lt;br /&gt;
|- &lt;br /&gt;
|jim&lt;br /&gt;
|M&lt;br /&gt;
|30&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;code&amp;gt;Hello World.&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jim</name></author>
		
	</entry>
</feed>