顯示具有 Network 標籤的文章。 顯示所有文章
顯示具有 Network 標籤的文章。 顯示所有文章

星期一, 4月 19, 2021

From Dynamic to Static IP Address on CentOS 7

Get the current network status related on some Network Interface (ex: ens192):

Now we get some important information:

  • 192.168.109.56/23 => IP 192.168.109.56 & MASK 255.255.254.0
  • GATEWAY=192.168.109.254

We keep all the settings except "dynamic", in /etc/sysconfig/network-scripts/ifcfg-ens192:

  • ONBOOT=yes
  • NM_CONTROLLED=no
  • BOOTPROTO=static
  • IPADDR=192.168.109.56
  • NETMASK=255.255.254.0
  • GATEWAY=192.168.109.254

After configuration saved, restart network service and verify:

  • service network restart
  • ip a show ens192

星期四, 4月 23, 2020

Bind / Unbind Low Port Number (less than 1024) to Some Program

  • sudo setcap CAP_NET_BIND_SERVICE=+eip /path/to
  • (/path/to can bind lower port without sudo)
  • sudo setcap -r /path/to

星期六, 11月 18, 2017

Intranet jail break

我們常開發了一些網站應用程式,部署在個人開發環境、內網測試環境與客戶測試環境,因為各有各的用途與限制,三者缺一不可,但又瑣碎費時。
  • 個人開發環境:通常與開發工具結合,不太需要擔心如何部署,但配備要夠(資料庫不一定是隨便一部電腦就跑得動吧?)。
  • 內網測試環境:為了整合測試,或給 SA 驗收確認,可以搭配 Jenkins 持續部署。
  • 客戶測試環境:為了給客戶 Prototyping,請工程師帶個人開發環境(筆電)秀給客戶看?或請客戶提供機器讓我們去裝一套?或請公司的 MIS 把內網開給客戶?
現在有個神器 ngrok 能幫忙,原理應該是與分享檔案的 JustBeamIt 類似,只要是內網測試環境,我們自己就能把內網開給客戶。下載解壓之後,只有一個執行檔,請在內網執行環境的主機上開終端機/命令提示字元,執行類似如下的指令:
  • ./ngrok http 80
就會把本機的 http port 80 公開在 Internet 上,網址是隨時産生的。這時再把網址傳給客戶,我們這些廢宅工程師就免出門吹風了。

星期二, 11月 29, 2016

Ping VirtualBox Windows Guest Fail?

想從 VirutalBox Host ping 到 Windows Guest?兩個條件:
  • VirtualBox Settings -> Network -> Host-only Adapter
  • Windows Guest Firewall -> Inbound Rules -> Virtual Machine Monitoring (Echo Request - ICMPv4-In / ICMPv6-In) -> Profile: Public / All -> Enable

星期五, 9月 25, 2015

認識 Docker + HAProxy (Software Load Balancing)

首先當然要裝好 Docker,再來是準備一台以上的 WebServer,以 Nginx 為例:
  • docker run --name nginx1 -d -p 8081:80 nginx
  • docker run --name nginx2 -d -p 8082:80 nginx
其中 -p 是表示將 Docker Host 的埠對應到 container 裏,所以在 Docker Host 上的 http://localhost:8081、http://localhost:8082 就會分別導到 nginx1、nginx2 的 80 埠,可以檢查一下是否能看到 Nginx 預設的首頁。

為了要知道這些 WebServer 的位址,可以下指令:
  • docker inspect nginx1 | grep IPAddress
  • docker inspect nginx2 | grep IPAddress
假設得到的結果是 nginx1: 172.17.0.1;nginx2: 172.17.0.2。接下來準備 HAProxy,因為官網說「沒有兩個人的設定一樣」,所以他們索性就不放一個入門級的設定範例了。沒關係,自己寫一個:
  • listen balanceGroup1 :80
    • server nginx1 172.17.0.1:80
    • server nginx2 172.17.0.2:80
  • listen stats :1936
    • mode http
    • stats enable
    • stats uri /
以上內容存檔在 /var/docker/haproxy.cfg,接著是重點:
  • docker run --name haproxy1 -d -p 80:80 -p 1936:1936 -v /var/docker:/usr/local/etc/haproxy:Z haproxy
如此就可以在 Docker Host 上訪問 localhost(會輪流導向 nginx1、nginx2),也可以在 localhost:1936 監控。因為瀏覽器的快取做得好,有時候反而不利於觀察 HAProxy 的行為,可以改用 curl 命令列工具。

[2018/05/12]
事隔多年,設定檔必須小改以符合新版的規定,如原先:
  • listen balanceGroup1 :80
要拆成兩行
  • listen balanceGroup1
    • bind :80
[2018/08/31]
服務與監控使用同一個埠似乎比較簡潔,就是整併上述 listen stats 段落,改為:
  • listen balanceGroup1
    • mode http
    • bind :80
    • stats enable
    • stats uri /admin?stats
    • server nginx1 172.17.0.1:80
    • server nginx2 172.17.0.2:80

星期四, 5月 28, 2015

錯誤的主機名稱解析拖慢網頁

有一個本機網頁要等很久,查了半天才知內含問題連結,只要主機名稱是
  • platform.linkedin.com
  • platform.twitter.com
的資源,都要等幾十秒才會逾時放棄。現在的解法,在 /etc/hosts 加上:
  • 127.0.0.1    platform.linkedin.com
  • 127.0.0.1    platform.twitter.com
大概縮短到一秒內就放棄了,所以會快很多。

ifup / ifdown not working?

在 Linux 執行以下的指令
  • ifconfig
藉由回應得知網路卡的名稱
  • eth0...
接著需要重啟該網路卡,以便套用新設定,其中一個指令為:
  • ifdown eth0
結果卻得到這樣的回應
  • usage: ifdown <device name>
原來用了多年的指令竟然改了?印象中在 Linux 的世界還是頭一遭,新的指令是:
  • ip link set eth0 down

星期三, 4月 22, 2015

VirtualBox Host 之下的多個 Guest 網路互聯

  1. 關閉 VirtualBox 應用程式。
  2. 自訂 Host 本身的網路位址,例 10.1.2.3。
  3. 預計多個 Guest 所共存的網路名稱叫 intnet,位址範圍在 10.1.2.10 ~ 10.1.2.20。
  4. 指令:vboxmanage dhcpserver add -netname intnet -ip 10.1.2.3 -netmask 255.255.255.0 -lowerip 10.1.2.10 -upperip 10.1.2.20 -enable。
  5. 查詢:vboxmanage list dhcpservers。
  6. 開啟 VirtualBox 應用程式。
  7. 針對需要互聯的 Guest 都增加 internal network 網路介面,名稱叫 intnet。
  8. 開啟各 Guest。

星期二, 2月 11, 2014

VirtualBox Guest - Guest Network on one Host

很簡單的做法:
  1. 各 Guest 都多加一個網路介面,選擇 Bridged。
  2. 各 Guest 開機後都可以查得自己的網址,其中有一個會是與其他 Guest 在同一網段內,雖然 Ping 可能不通,但也許 Web Services 是通的,至少在 Windows 世界稍微試過的結果是這樣。