[Linux] 設定 CentOS 7 的 Firewalld 防火牆允許 VNC 連線
今天在 Mac 上想用 RealVNC Viewer 去連一台 CentOS 7 的機器,
出現了 connection was refused 的錯誤訊息:
這是為什麼呢?秉持著之前用 Wireshark 觀察 SMB 掛載目錄失敗的封包的精神,
這次也用 Wireshark 來觀察看看…
發現一開始 CentOS 那台機器就回了個 Host administratively prohibited,
感覺上就是那台機器上有個類似 firewall 的東西擋掉了:
解決的方法也很簡單,來調整一下 CentOS 內建防火牆的設定吧~
參考資料:How To Set Up a Firewall Using FirewallD on CentOS 7
1. 設定防火牆的預設 zone
到 Applications > Sundry 下點擊 Firewall,就可以看到防火牆的設定,
左邊 Zone 中的粗體部分代表預設的 zone,目前是 public:
因為我的這台 CentOS 是在公司內部,想將它設定在比較適當的 zone 裡面,
選擇 Options > Change Default Zone:
預設的 zone 有蠻多種類的,我選擇了 work 代表公司的內網:
2. 設定防火牆允許的連線種類
變更了預設的 zone 之後,還要設定這個 zone 可以允許的連線種類,
在 work zone 裡面預設並沒有勾選 vnc-server,將它勾起來:
3. 再次測試 VNC 連線
重新用 RealVNC Viewer 連連看 CentOS 7…
這次的錯誤訊息不一樣了,看起來是可以連到 VNC server,
只是因為一些加密選項的問題而無法連上,表示剛剛的防火牆設定是有效的:
從 Wireshark 那邊也可以看到 VNC 的連線,不再是 Host administratively prohibited:
至於這個 VNC 連線的加密選項問題,
可以參考用 Mac 連上 CentOS 7 的 vino VNC server,就能順利解決囉~