在DigitalOcean 的 VPS中用yum update時出現了以下錯誤:
" ... cannot allocate memory ..."
VPS雖然只有512M,但仍未用完。但是沒有SWAP。
Google 後發現,原來真是RAM不足,可能是在安裝過程中某個套件需要更多的RAM吧!不想升VPS計劃,因該主機工作簡單,沒必要用更多RAM的計劃。那只好加SWAP了,反正用的是SSD,速度已不錯的。
以下是在centos7.1中做一個2GB swap的步驟:
1. 生成一個2GB檔案,用來做SWAP
$ dd if=/dev/zero of=/swapfile bs=1024 count=2M
2. 轉"swapfile"為SWAP格式
$ mkswap /swapfile
開啟SWAP
$ swapon /swapfile
查看情況
$ top
KiB Mem : 501144 total, 47088 free, 318512 used, 135544 buff/cache
KiB Swap: 2097148 total, 2006484 free, 90664 used. 63632 avail Mem
3. 修改 fstab, 使reboot後可自行加載swap
$ vi /etc/fstab
加入以下一行
/swapfile swap swap defaults 0 0
完成!
Ref:
https://www.centos.org/docs/5/html/5.2/Deployment_Guide/s2-swap-creating-file.html
2015年11月26日星期四
2015年11月11日星期三
列出檔案清單
本文以WINDOWS 7作實驗,其他WINDOWS系統都應該杷同。
目標:
列出指定目錄及所有子目錄中的檔案,匯出成一個檔案。
1. 將 Windows console 轉成UTF-8編碼
不知為何,Windows的console不是UTF-8編碼的,如此一來,有部分檔案名會亂碼,必須將編碼轉成UTF-8。
在console執行
$ chcp 65001
2. 列出檔案清單
先列子目錄,以檔案名+日期(舊到新)排序,匯出到檔案 "list_all.txt"
$ dir /s /ognd > list_all.txt
/S 顯示指定目錄及所有子目錄中的檔案。
完成!
ref:
1. http://blog.darkthread.net/post-2011-08-11-command-prompt-codepage.aspx
2. http://superuser.com/questions/269818/change-default-code-page-of-windows-console-to-utf-8
3. windows help
DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
[/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
[drive:][path][filename]
指定要顯示的磁碟機、目錄或檔案。
/A 依照指定的檔案屬性來顯示檔案。
attributes D 目錄 R 唯讀檔
H 隱藏檔 A 保存檔
S 系統檔案 - 無意義
L 重新分析點 - 首碼表示否定
/B 使用單純格式 (沒有標頭資訊或摘要)。
/C 顯示檔案大小千位數分隔符號。這是預設值。使用 /-C 來停用
分隔符號的顯示。
/D 與寬的列表格式相同,但是依照欄來排序。
/L 使用小寫顯示。
/N 使用新的長列表格式,檔名會顯示在最右方。
/O 依照指定的排序順序來列出檔案。
sortorder N 依名稱 (英文字母) S 依大小 (最小的在前)
E 依副檔名 (英文字母) D 依照日期與時間 (日期較早的在前)
G 先列出子目錄 - 表示相反的順序
/P 當資料填滿整個螢幕時暫停顯示。
/Q 顯示檔案擁有者。
/R 顯示檔案的替代資料流。
/S 顯示指定目錄及所有子目錄中的檔案。
/T 指定用來顯示或排序的時間欄位
timefield C 建立
A 上次檔案存取時間
W 上次寫入檔案時間
/W 使用寬的列表格式。
/X 顯示對非 8.3 格式的檔案產生的短檔名。這個格式和 /N 相同,
但是短檔名會插入在長檔名之前。如果沒有長檔名存在,該處會
顯示空白。
/4 顯示四位數的年份
參數可能會在 DIRCMD 環境變數預先設定。您可以在任何參數使用連字號字首(-)
來覆蓋預先的設定--例如: /-W
目標:
列出指定目錄及所有子目錄中的檔案,匯出成一個檔案。
1. 將 Windows console 轉成UTF-8編碼
不知為何,Windows的console不是UTF-8編碼的,如此一來,有部分檔案名會亂碼,必須將編碼轉成UTF-8。
在console執行
$ chcp 65001
2. 列出檔案清單
先列子目錄,以檔案名+日期(舊到新)排序,匯出到檔案 "list_all.txt"
$ dir /s /ognd > list_all.txt
/S 顯示指定目錄及所有子目錄中的檔案。
/O 依照指定的排序順序來列出檔案。
sortorder N 依名稱 (英文字母) S 依大小 (最小的在前)
E 依副檔名 (英文字母) D 依照日期與時間 (日期較早的在前)
G 先列出子目錄 - 表示相反的順序
sortorder N 依名稱 (英文字母) S 依大小 (最小的在前)
E 依副檔名 (英文字母) D 依照日期與時間 (日期較早的在前)
G 先列出子目錄 - 表示相反的順序
ref:
1. http://blog.darkthread.net/post-2011-08-11-command-prompt-codepage.aspx
2. http://superuser.com/questions/269818/change-default-code-page-of-windows-console-to-utf-8
3. windows help
DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
[/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]
[drive:][path][filename]
指定要顯示的磁碟機、目錄或檔案。
/A 依照指定的檔案屬性來顯示檔案。
attributes D 目錄 R 唯讀檔
H 隱藏檔 A 保存檔
S 系統檔案 - 無意義
L 重新分析點 - 首碼表示否定
/B 使用單純格式 (沒有標頭資訊或摘要)。
/C 顯示檔案大小千位數分隔符號。這是預設值。使用 /-C 來停用
分隔符號的顯示。
/D 與寬的列表格式相同,但是依照欄來排序。
/L 使用小寫顯示。
/N 使用新的長列表格式,檔名會顯示在最右方。
/O 依照指定的排序順序來列出檔案。
sortorder N 依名稱 (英文字母) S 依大小 (最小的在前)
E 依副檔名 (英文字母) D 依照日期與時間 (日期較早的在前)
G 先列出子目錄 - 表示相反的順序
/P 當資料填滿整個螢幕時暫停顯示。
/Q 顯示檔案擁有者。
/R 顯示檔案的替代資料流。
/S 顯示指定目錄及所有子目錄中的檔案。
/T 指定用來顯示或排序的時間欄位
timefield C 建立
A 上次檔案存取時間
W 上次寫入檔案時間
/W 使用寬的列表格式。
/X 顯示對非 8.3 格式的檔案產生的短檔名。這個格式和 /N 相同,
但是短檔名會插入在長檔名之前。如果沒有長檔名存在,該處會
顯示空白。
/4 顯示四位數的年份
參數可能會在 DIRCMD 環境變數預先設定。您可以在任何參數使用連字號字首(-)
來覆蓋預先的設定--例如: /-W
2015年10月4日星期日
centos 7 更改timezone
1. 找出要更改的time zone的正確名稱
以香港為例:
# timedatectl list-timezones | grep Hong
將列出
Asia/Hong_Kong
2. 更改time zone
2. 更改time zone
# sudo timedatectl set-timezone Asia/Hong_Kong
檢查
# date
Sun Oct 4 23:44:21 HKT 2015
"HKT" => 香港時間
完成!
updated 2016/5/31
以上同樣可用於Ubuntu 16.04 LTS.
ref:
http://www.cyberciti.biz/faq/centos-linux-6-7-changing-timezone-command-line/
檢查
# date
Sun Oct 4 23:44:21 HKT 2015
"HKT" => 香港時間
完成!
updated 2016/5/31
以上同樣可用於Ubuntu 16.04 LTS.
ref:
http://www.cyberciti.biz/faq/centos-linux-6-7-changing-timezone-command-line/
2015年6月3日星期三
Shadowsocks @Pi
自從天朝加強封鎖GOOGLE的服務後,為我等依賴Google相關服務的人帶來許多不必要的麻煩,只好被逼“科學上網”了。其中shadowsocks是一個十分穩定的方法。對比其他“科學上網”的方法, SS最大的好處是在網絡斷線後不用再次連接,而且感覺反應速度也不錯。
但長期用免費的SS 帳號總覺有點安全問題,而且也增加提供者的壓力。既然有條件,便自己架設一個SS好了。
要準備的東西:
1. Raspberry Pi 一部 或者買個VPS (本文以Pi為例,其實操作差不多)
舊的B版便足夠,不一定要2.0的新版。
2. 牆外的寛頻上網
好了,可以開工了。
一. 安裝Pi的系統
下載RespBian後,用工具寫入MicroSD卡便可。
接好顯示器(HDMI),USB keybroad mouse,LAN線及電源後,便Boot機。按指示便可安裝完成所需的基本功能。
建議在上述安裝過程中,選擇安裝SSH server,方便日後遠程登入設置,不必再接keybroad mouse.
注意:
一般購入的Pi未必包火牛及MicroSD卡。要問清楚。其實可用一般電話的火牛便可。Pi的輸入是5V+1A. 其實用800mA也可以。插頭是MicroUSB。
二.安裝 SS及防火牆
參考:
http://shadowsocks.org/en/download/servers.html
https://tryapi.wordpress.com/2014/08/28/shadowsocks-server/
https://tryapi.wordpress.com/2014/08/28/shadowsocks-server/
本想安裝C的版本,但安裝時出現問題,最後決定用Python的版本。
1. 確定Python是2.6或是 2.7
python --version
Python 2.6.8
2. 安裝必需的軟件
為方便,建議用root來執行安裝過程
sudo su -
開始安裝
pip install --upgrade pip
apt-get install python-pip python-gevent python-m2crypto更新 pip
pip install --upgrade pip
3. 安裝 SS
pip install shadowsocks
如無意外,安裝便完成。接下來要配置參數。
4. 配置參數
以下是2個ports登入的設置:
nano /etc/shadowsocks.json
{
"server":"0.0.0.0",
"local_address": "127.0.0.1",
"local_port":1080,
"port_password": {
"443":"password1",
"8889":"password2"
},
"timeout":600,
"method":"aes-256-cfb",
"fast_open": false,
"workers": 2
}
登入ports的數值并沒有限定,一般低於1000的ports可能已有服務需用。有部分ports可能會被家用寛頻封掉,如port 25。Port 443一般是https 服務用的,有機會家用寛頻會封掉。
完成以上後安裝客戶端,填上密碼等資料,便可翻牆了。但為免被人輕鬆入侵,建議設備防火牆 iptables。最簡單就是只開放指定幾個ports,其他不接受連接。
5.設置iptables
以下是一個只開放port 443,8889及22的例子:
把以下儲存為 iptables.save
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [672:84130]
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 8889 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -j DROP
COMMIT
然後執行
iptables-restore < iptables.save
將上述命令加入/etc/rc.local (在exit 0之前)
簡單的防火牆便完成了。
三. 測試及報行
ssserver -c /etc/shadowsocks.json
如無錯誤,使完成安裝了。
更改/etc/rc.local,使之在重啟後在背景報行:
更改/etc/rc.local,使之在重啟後在背景報行:
sudo nano /etc/rc.local
在exit 0之前加入以下
sudo nohup ssserver -c /etc/shadowsocks.json > /dev/null 2>&1 &
四. 客戶端
ref:
http://shadowsocks.org/en/config/quick-guide.html
Linux
創建配置 abc.json
nano abc.json
{
"server":"abc.no-ip.org",
"server_port":443,
"local_port":8888,
"password":"password",
"timeout":600,
"method":"aes-256-cfb"
}
執行:
sslocal -c hksp.json > /dev/null 2>&1 &
將瀏覽器或系統的proxy設置成
ip: 127.0.0.1
port:8888
socks5
完成,可科學上網了。
其他客戶端
http://shadowsocks.org/en/download/clients.html
標籤:
翻牆,
pi,
reaspberry,
shadowsocks,
ss,
vpn
用Command Line 匯入P12證書到Firefox中
轉至/home/UserName/.mozilla/firefox
前題是Firefox曾執行過,否則 ".mozilla" 不存在。
在此目錄下,有一個xxxxxxxx.default的目錄,進入去,執行以下命令匯入P12證書到Firefox中
pk12util -i abc_cert.p12 -d ./
Enter password for PKCS12 file: <==如有密碼
pk12util: PKCS12 IMPORT SUCCESSFUL
完成後,證書已被匯入,以下檔案會被更新。
cert8.dbkey3.db
------------------------------------------------------------------------------------------------------------
參考:
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Reference/NSS_tools_:_pk12util
-i p12file
Import keys and certificates from a PKCS#12 file into a security database.
-d [sql:]directory
Specify the database directory into which to import to or export from certificates and keys.
pk12util supports two types of databases: the legacy security databases (cert8.db, key3.db, and secmod.db) and new SQLite databases (cert9.db, key4.db, and pkcs11.txt). If the prefix sql: is not used, then the tool assumes that the given databases are in the old format.
-n certname
Specify the nickname of the cert and private key to export.
訂閱:
文章 (Atom)