星期四, 6月 07, 2018

tw.archive.ubuntu.com unreachable

為了讓 Ubuntu 認得 exfat 隨身碟,在安裝套件時遇到 tw.archive.ubuntu.com 連不上的問題。因為並不清楚這是否僅是暫時性的,捨棄了幾篇教人修改 /etc/apt/sources.list 的做法,換成:
  • ping archive.ubuntu.com 查出一個 IP 位址
  • 在 /etc/hosts 加一條,將上述位址定名為 tw.archive.ubuntu.com
如此便可暫時改道取套件。

星期一, 6月 04, 2018

Bootcamp stuck while Win10 setup

在 MBP Sierra 利用 Bootcamp 製作雙開機系統已算是非常方便了,騰出磁碟空間、重新分割、抓驅動程式、製作開機 USB Disk 幾乎都是自動的,不過還是卡了一整個週末:
  • 官方文件強調 USB 2.0 才可以,事實上我的 MBP 2013 early 兩個 USB port 都是 3.0 的,Disk 要有 16GB 的空間大概也不可能太舊,如今應該是很難找得到符合的硬體。別擔心,USB 3.0 沒問題。
  • 從微軟下載的 iso 並不會被懷疑有問題,事實上如果像我一樣在另一部電腦下載,再透過 USB 移到 Mac 上讓 Bootcamp 準備過程中用到,可能就會破壞了內容,即使看起來還是 4.69GB 大小。驗證的方法就是開個虛擬機,看能否用這 iso 裝機完成?
  • 需要的驅動程式也都由 Bootcamp 代勞了,舊文很多提到要自己準備第二個 USB Disk 或第二個磁碟分割等等很多麻煩的事,其實都不需要。
  • 也有看過一篇舊文寫到,給 Win10 的分割區要有 55GB,我這小得可憐的 SSD 可很難擠得出來,幸好這也不是真的。

星期五, 5月 25, 2018

GCB CentOS 7 Account / Password Expired

玩 Linux 這麼久,還沒遇過這麼嚴格的,幾個月不見就不跟你玩了?首先要想辦法進入單人模式,再展延逾期的帳號或密碼。

星期三, 5月 16, 2018

SSH Server on Windows

這篇所述,在 Windows 作業系統下,安裝微軟官方的 SSH Server,有些值得一記:
  • 不必堅持穩定版,最新會少些問題。
  • 看到錯誤代碼?快 Google 一下,早有許多先烈。
  • 安裝程序沒有考慮到各版本(Server / Desktop / 新 / 舊)的差異,因此很容易起不了服務。專門建帳號並給更高的權限,先通了再縮限會比較好處理。
  • 連進去之後並不接受 Linux bash 之類的指令,可用的是 PowerShell 精簡版。
衝著最後一點,與我原意要接 Jenkins Publish Over SSH 統一 Windows / Linux 指令,以解決部署需求不符,快改用 MobaSSH 吧!蠻有趣的,下載解壓後唯一的檔案,既是安裝精𩆜,又可做管理介面。

[2018/05/24]
如果在 Windows Server 環境,Free 的 MobaSSH Home Edition 並不支援,窮人們還是再想想微軟官方版的存在價值吧?在 Linux Shell 還沒統一天下之前,PowerShell 不容易閃躲,原來 Ansible 2.0 也是這麼玩的呀。

星期二, 3月 20, 2018

Auto sync CentOS server time

要讓眾 Client 向 Server 對時已是很多系統的基本需求,所以我們得先搞懂 Server 如何讓自己的時間準確?
  • yum install ntp
  • 根據這個網站挑選合適的時間伺服器列表,ping 確認網路通暢後,加在 /etc/ntp.conf
  • systemctl start ntpd
  • systemctl enable ntpd
  • timedatectl set-ntp true
  • 等五分鐘
以前不知要有點耐心,下完指令總以為還缺什麼,就是沒有校正時間?「等五分鐘」值得一記。

Testing your private key and certificate for HTTPS

雖然各種 Web Application Server 很容易安裝私鑰與憑證來支援 HTTPS,但如何確認安裝是成功的?連連看應該有分幾個層次,否則一旦連不上,也不知道要找誰求救:
  • check ip
    • ping <Host_IP>
  • check name resolution
    • nslookup <Host_Name>
  • check port from client
    • telnet <Host> <Port>
    • echo > /dev/tcp/<Host>/<Port> && echo open || echo closed
  • check port from server
    • ss -tnlp
    • firewall-cmd --list-all
  • check response
    • curl <Url>
    • Browser
其實在最後一關,有時也必須再細分 HTTP / HTTPS,若在 Server 端一好一壞,可以檢查:
  • 檔案路徑
  • 存取權限
  • 私鑰密碼
  • 憑證串鍊
  • 加密協定
若是 Server 端正常,但 Client 端一好一壞,只剩一招:
  • openssl s_client -connect <Host>:<Port>
至少有一次檔案傳壞了就是這麼找到的。

星期五, 3月 02, 2018

ngrok + NextCloud + WebDAV + cURL

過去常在用 SCP + bakop.com 做為沒有圖形介面、沒有 VPN 時的抓檔來源,但畢竟是外部資源,用得不太安心。雖然以前也對 OwnCloud 下過功夫研究,但苦於必須有圖形介面瀏覽器限制,這次終於有突破:
  • 檔案分享-NextCloud
  • 指令存取-WebDAV + cURL
  • 內網外露-ngrok
其實公司早就在推 NextCloud,但並非網管,我一直試不成功。這次差別是我自己在內網用 docker 開了有絕對管理權限的一台新的,才知原來整合 LDAP 之後,各使用者有個 UUID 代表 UserName,並不等於登入帳號,所以取檔案大約像這樣:
  • curl -u 'user:pass' -O http://nc.acme.com/remote.php/dav/files/UUID/path/to/file
[2018/03/14]
原來 UUID 還是可以改的,不至於太難用,可參考 Internal Username 這段。

[2018/03/30]
ngrok 取來的主機名稱可以保留蠻久的,直到最近一次斷電。因為重新連上一定會換名字,每次都要進 config/config.php 改 trusted_domain 也實在麻煩,尤其是 docker 裡面連 vi 都沒有。一個修改訣竅是:
  • 'trusted_domains' =>
  • array (
  • 0 => '*.ngrok.io',
  • ),
另外提到在 docker 裡面不容易編輯 config.php,可以運用 occ 這個工具:
  • ./occ config:system:set 0 --value=*.ngrok.io
  • ./occ config:system:get
[2018/04/04]
單開一組帳密給外人使用似乎是管理者的特權,那我們一般小老百姓呢?也是可以在自己的管理範圍內開出共享目錄,以 http://nc.acme.com/s/<shareLink> 允許讀寫、不設密碼保護為例,上傳:
  • curl -u '<shareLink>:' -T <fileName> http://nc.acme.com/public.php/webdav/ [--progress-bar -o /dev/null]
下載:
  • curl -u '<shareLink>:' -O http://nc.acme.com/public.php/webdav/<fileName>
查詢目錄內容:
  • curl -u '<shareLink>:' -X PROPFIND http://nc.acme.com/public.php/webdav/ | grep -o '<d:href>[^<]*</d:href>'
[2018/09/06]
共享匿名個別檔案有些不同:
  • curl http://nc.acme.com/s/<shareLink>/download -o <fileName>