<?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-04-03T22:28:51Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<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>
	<entry>
		<id>https://wiki.gold4y.com/index.php?title=%E7%B3%BB%E7%BB%9F%E5%AE%89%E8%A3%85&amp;diff=301</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=301"/>
		<updated>2026-02-05T09:46:52Z</updated>

		<summary type="html">&lt;p&gt;Jim: /* Kubernete 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;
==== 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=%E4%B8%8A%E6%B5%B7%E8%B4%9D%E5%B0%94&amp;diff=300</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=300"/>
		<updated>2026-01-04T09:17:22Z</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;
|&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=%E4%B8%8A%E6%B5%B7%E8%B4%9D%E5%B0%94&amp;diff=299</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=299"/>
		<updated>2025-12-21T08:01:07Z</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;
|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;
|&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=%E4%B8%8A%E6%B5%B7%E8%B4%9D%E5%B0%94&amp;diff=298</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=298"/>
		<updated>2025-07-28T14:56:16Z</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;
|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;
|&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弄19幢3层25室&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=%E8%87%B4%E4%BA%BA%E5%AE%88%E5%88%99&amp;diff=297</id>
		<title>致人守则</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E8%87%B4%E4%BA%BA%E5%AE%88%E5%88%99&amp;diff=297"/>
		<updated>2025-07-28T14:25:11Z</updated>

		<summary type="html">&lt;p&gt;Jim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* 自己动手&lt;br /&gt;
* 温故知新&lt;br /&gt;
* 严于自制&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=%E8%87%B4%E4%BA%BA%E5%AE%88%E5%88%99&amp;diff=296</id>
		<title>致人守则</title>
		<link rel="alternate" type="text/html" href="https://wiki.gold4y.com/index.php?title=%E8%87%B4%E4%BA%BA%E5%AE%88%E5%88%99&amp;diff=296"/>
		<updated>2025-07-28T14:08:10Z</updated>

		<summary type="html">&lt;p&gt;Jim: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* 自己动手&lt;br /&gt;
* 温故知新&lt;br /&gt;
* 严于自制&lt;br /&gt;
:时间节制&lt;br /&gt;
:生活节制&lt;br /&gt;
*持续积累,可见的积累&lt;br /&gt;
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDE0fLKPa/LhcNJhcJ3S3IKVmw0ylwWsU/RnSwk8jXTusUfUNSalj19/URmtmXC+ltgS2/cokngH+nT3Xjk6rJrnx+zNUNGQpRA8i+6Lwz7pIY9+DdIbfAdwYo45okWvIqlkQwS9RqcyamvFH8kqu6xx2daQImQItqf2QoWSSN1tkG9NnqjnS50marXTN80L1hIzOAJOu2neAegu4WIRPk7WdCSl2Xp7Ee+A2M/VVcDUIo4+f68CRIiGMz7WeTRAzowPq+OrQoEnH8B1D7ayE3o4ixksDnhBky/fW88IjvCGNM+m8ZIvRHWPUelXbWgkQFOBFSW7cZka/bFRiEpsK95 chenting@chentingdeMacBook-Pro.local&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=295</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=295"/>
		<updated>2025-07-19T08:21:59Z</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;
|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;
|}&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;
|&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弄19幢3层25室&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=294</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=294"/>
		<updated>2025-06-25T09:12:22Z</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;
==== '''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;
&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;
==== 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>