自架 WordPress 上傳媒體發生 HTTP 錯誤

WordPress 上傳檔案大小很多人都了解,透過更改 php.ini 可以讓上傳的檔案大一點,不過有時候卻發現檔案大小不超過限制,上傳又會出現 HTTP 錯誤,那是怎麼回事呢?


既然都說是 HTTP 錯誤,就來看一下網頁伺服器錯誤。
cat /var/log/nginx/error.log | grep error

問題顯而易見,太大放不進去。

使用自己習慣的編輯工具更改 nginx 設定檔即可,例如 vi /etc/nginx/nginx.conf,並在 http{ } 內新增 client_max_body_size 20M;


nginx -t 測試一下沒問題就能 restart nginx。

LOG 不是 LOG 辛酸的,就是要能在出問題時能拿來使用

Google Dns 與 Cloudflare 新增 Minecraft SRV 紀錄

雖然前陣子有發文如何找出 SRV 真實 IP,不過總是要來個,那麼如何新增 SRV 紀錄呢?
現在常見的 DNS 代管蠻流行的就屬於 CloudFlare,而我因為工作因素也有接觸到 Google DNS,CloudFlare 的 SRV 較為淺顯易懂,一個蘿蔔一個坑,那邊要填入東西就填入,Google DNS 就沒那麼友善了。

CloudFlare 示範:
畢竟 SRV 終究要指向一個真實的位置,所以要先在上面設定一個 A 與 AAAA 紀錄,不過我相信台灣多數是沒有 IPv6 可用,所以新增 A 紀錄即可

假設我希望玩家可使用 crlab.com.tw 連上我的創世神伺服器,而其實 crlab.com.tw 是指向某個隱藏好的 A 或 AAAA 紀錄,例如可能是 XDXD.crlab.com.tw 那麼就先新增一個相關紀錄。

Name 例如本次的 XDXD,IPv4 就填寫主機的 IP,後面有個橘色雲記得關閉,之後按下綠色的 Add Record,完成後就能新增 SRV 紀錄。

Service name 填寫 _minecraft,Protocol 預設的 TCP,Name 因為我想要使用 crlab.com.tw 所以就填寫 @,假設想要玩家使用 server.crlab.com.tw,那麼 Name 就要填寫 server。
接下來就是填寫目標主機與 Port。

第一與第二維持 1 即可,第三個假設伺服器使用 25565 就填寫 25565,Target 就填寫要指向的目標,例如 XDXD.crlab.com.tw。
接下來玩家就能透過 crlab.com.tw 連線到伺服器。

Google DNS 示範:
其實 Google Dns 的 SRV 設定挺不友善的,不像 CloudFlare 有指引,不過其實記得那邊該填寫什麼就好。

提示只有 0 1 587 這誰知道呢?其實多設定記一下就知道就好,概念上也是相同,需要有個真正的 A 或 AAAA 紀錄,接下來新增 SRV 紀錄來對應就好。


DNS 名稱就填入 _minecraft._tcp, SRV 紀錄則是 0 0 Port位置 目標主機,例如:0 0 25565 host.crlab.com.tw

Dcard 刪文查找

每次在 Dcard 上看到 FB 貼文,難免有些勁爆的內容讓人想點進去看,不過卻偶爾發生甚至貼文剛出現當下,可能才幾秒鐘的時間差,點進去就發現文章已經不見,這樣的狀況不禁令人懷疑,是不是 Dcard 沒有真的刪文,而有權限的人還是看得到貼文,他也不知道這篇文可能被刪除,導致可能真的被刪除的文章就上了 FB,Dcard 也常發生多重新整理幾次文章又出現的狀況,是系統問題?還是真的刪文不徹底?我也不知道不過只好仰賴一下 Google 來幫助我們找到消失的貼文。


解決方法也蠻簡單的,點上方網址列。

可以在網址後方加一個空白,之後會有個 Google 搜尋,點下去就是了。

一般而言就會看到如下圖的結果。

舉例綠色網址那邊有個箭頭,點下去有個頁庫存檔。

基本上就能看到被刪除的貼文,不過大概只能看到被刪除幾天內的文章,太久暫存也會消失,這時候也沒效了。

找出 Minecraft 伺服器真實 IP

找出伺服器 IP 其實挺簡單的,除了一般常見 DNS 設置 A 與 AAAA 紀錄外,現在更流行於創世神伺服器的則是 SRV,雖然能理解為了避免被找出真實 IP 而被攻擊,不過還是來教簡單的方式找出真實 IP。

一般而言常見的 A 與 AAAA 記錄透過簡單的 Ping 或是 nslookup 即可輕鬆找出真實 IP,雖然 Ping 伺服器不一定會有回應,不過當你 Ping 某機器時他的 IP 就會被透露出來,這很多人都會也沒什麼技術上的難度。

IPv4

IPv6

不過有些情況下就會遇到 nslookup 查不到,但是 Minecraft 又能連上該伺服器,基本上就能判定該伺服器使用 SRV 紀錄。

不用安裝軟體,Windows 與 Linux 和 macOS 都有內建 nslookup 指令,使用 nslookup 指令再透過一些參數即可輕鬆找出真實位置。

開啟命令提示字元或是終端機,輸入 nslookup 之後再輸入 set type=srv,即可切換為查詢 SRV 紀錄。


之後便能輸入目標來查詢,一般而言假設連上伺服器的位置是:facebook.com,那麼你需要在前端加入 _minecraft._tcp.,也就是 _minecraft._tcp.facebook.com,所以把整段 _minecraft._tcp.facebook.com 打在剛剛開的且設定過查詢目標的 nslookup 就能查出 SRV 紀錄。

真實目標不會是 IP,可能是一個被隱藏好的 A 與 AAAA 紀錄,不過無所謂,只要 A 或 AAAA 紀錄顯示出來,就能簡單的 Ping 一下或是透過 nslookup 查詢真實 IP。

剛剛的 nslookup 可以再輸入 set type=a 或是 set type=aaaa,不過以台灣來說超過 95% 以上使用 set type=a 即可,再輸入剛剛查詢到的真實目標,即可找出真實 IP。

簡單測試一下巴哈我的世界上的一些伺服器。

當然 _minecraft._tcp. 這段是可以更改的,不過透過軟體 wireshark 撈一下 Minecraft 連線時的封包也能簡單找出紀錄,有機會再來教。

至於找出真實 IP 可以做什麼,難不成是攻擊?當然不是,有了主機確切的 IP,就可透過 traceroute 來檢視連線至伺服器的路徑有無異常,或是用來更嚴苛的用途,例如某伺服器可能打著我們使用高級的 OVH 主機,查到之後卻發現原來不過就是個 hinet 的位置,那麼該伺服器的說法就有疑慮。

看延遲大約 230ms 上下,可猜測該伺服器幾乎不可能在國內,若在遊戲中遊玩可能會感受些許的延遲。

查看路徑,確認伺服器應該是在加拿大。

查 IP 資料可見是 OVH 的主機。

所以找出真實 IP 是有其必要性,對於玩家找電信除錯或是回報路由問題,電信業者也會要求提供 traceroute 資料,如果不知道真實 IP 怎麼去測試呢?

2017 基礎教學 Folding@home 分散式運算軟體

我想有接觸分散式運算的人多少都會聽過 Folding@home 這套軟體,這是一套用來研究蛋白質摺疊、誤折、聚合等所引起的相關疾病,由史丹福大學化學系所主持的一項蛋白質研究計畫,可別小看這套軟體所運算出的結果,有很多的蛋白質結構研究論文都參照了這個計畫的成果,經過報告證實,此軟體的運算結果是正確的,也就是不會讓你白費電力去運算錯誤的結果,這項計畫在 PS3 也實行已久,當 PS3 閒置時就會開始運算,全世界的 PS3 提供了世界,總量約 35%
以上的運算能力,那麼介紹就到這邊,接下來教你如何安裝並且開始你的運算吧。

首先可以到官網

往下拉就會看到 START FOLDING
繼續閱讀 “2017 基礎教學 Folding@home 分散式運算軟體”

WordPress Nginx rewrite 規則

網路上雖然蠻多教學都會教你把請求轉到 index.php,看似簡單不過還有些地方要注意,wp-admin 可能會導致 404 發生,3 行簡單的做法就能正常運作囉。
location / {
try_files $uri $uri/ /index.php?$args;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;

Let’s encrypt 免費 SSL 憑證教學

雖然這篇文來的有點遲,不過還是不免俗的簡單介紹一下免費的憑證,Let’s Encrypt 是由多家大型公司為推廣 HTTPS 而成立的一個組織,網路上已經有蠻多教學文章了,不過個人認為 EFF(電子前哨基金會)推的 certbot 最為好用,至於網路上 SSL For Free,個人是不太信任這種服務就是了。

Certbot 的安裝很簡單先使用 dnf 指令安裝就好
dnf install certbot
之後就能下指令取得要的憑證
certbot certonly

繼續閱讀 “Let’s encrypt 免費 SSL 憑證教學”

Nginx 錯誤 Address already in use 解決

原本 dnf install nginx 用得好好的,也不知道是怎樣,就想加一些 module,試了一下 Google 的 PageSpeed Module,他有提供個自動化安裝腳本,這才想說不對,慘慘慘總之後來先是 rm -rf 自動化腳本安裝的 Nginx,先來試試 start nginx,問題浮現啦 Orz。

看一下錯誤紀錄 Address already in use,當然也想說那很簡單先 stop,這才驚覺不對好像 stop 不了,我的網站還能連。

繼續閱讀 “Nginx 錯誤 Address already in use 解決”

Fedora 安裝 Fail2ban 防止暴力破解 ssh

Fail2Ban 是非常多人使用的程式,可自動化 Ban 暴力破解 SSH 或是其他服務的使用者 ip,筆者之前是在 VPS CentOS 上安裝,其實還蠻簡單的,不過沒想到轉 Fedora 卻發現好像有點問題,仔細看一下問題也不大,只要會看錯誤都可以輕鬆解決。

Fedora 25 預設是使用 Firewalld 不過個人覺得 iptables 比較好用,所以就先停用。
systemctl disable firewalld.service
systemctl stop firewalld.service
之後安裝 iptables
dnf install iptables-services -y

安裝完成後可透過
systemctl enable iptables
systemctl start iptables
來啟動 iptables

iptables 基本操作使用可參閱以下文章:
How To Set Up a Basic Iptables Firewall on Centos 6
繼續閱讀 “Fedora 安裝 Fail2ban 防止暴力破解 ssh”