GitLab – Server responded with 0 code

Loading

測試環境 Ubuntu 22.04.1

因為我的工作環境有兩個網段,其中 192.168.31.0/255.255.255.0 的 IP 透過 NAT( 192.168.31.133 ) Port Forwarding 轉出去.

目前有一台 Gitlab server (IP: 192.168.31.131 ) 放在 192.168.31.0 網段,關於 NAT Port Forwarding 或 DNAT ( Destination Network Address Translation) 請參考 – https://benjr.tw/103990

Gitlab Server IP:Port 192.168.31.131:80 NAT Port Forwarding 到 192.168.88.128:80 如下圖.

使用者透過 192.168.31.0 網段使用 GitLab 192.168.31.131 時都沒問題,但連線 192.168.88.128 時在編輯 wiki 時,卻發現無法插入附件,並會顯示 Server responded with 0 code

檢視 Gitlab 的訊息,可以看到以下兩個錯誤.

root@ben-virtual-machine:~# cat /var/log/gitlab/gitlab-rails/production.log
Raven 3.1.2 configured not to capture errors: DSN not set
[ActionDispatch::HostAuthorization::DefaultResponseApp] Blocked host: example.org
  • DNS rebinding attacks
  • Blocked host: example.org
    上網查詢好像是這一類的錯誤.
    HTTP Host header attacks – https://portswigger.net/web-security/host-header
    Cross-Origin Resource Sharing (CORS) or cross domain error – https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple_requests

透過 Chrome 工具檢視錯誤為 dropzone.js:1371

上網查了半天說是 還是不知道要怎麼辦,目前只知道以下兩種方式來避免這個問題.

  1. 變更 external_url 為其他 IP
    最後是把 external_url 改成 192.168.88.128

    root@ben-virtual-machine:~# vi /etc/gitlab/gitlab.rb
    external_url 'http://192.168.88.128'
    

    重新配置運行(gitlab-ctl reconfigure )

    root@ben-virtual-machine:~# gitlab-ctl reconfigure
    

    但會變成透過 192.168.31.131 連 Gitlab 時無法插入附件.

  2. 變更 external_url 為 Hostname
    這個要靠 DNS 或是 hosts (Windows : C:\Windows\System32\drivers\etc\hosts 檔案 ) 來幫忙解析.

    root@ben-virtual-machine:~# vi /etc/gitlab/gitlab.rb
    external_url 'http://Internal-Gitlab'
    

    重新配置運行(gitlab-ctl reconfigure )

    root@ben-virtual-machine:~# gitlab-ctl reconfigure
    

Gitlab 有一個關於 allowed_hosts 設定 – https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab ,但試過沒用.

root@ben-virtual-machine:~#  /etc/gitlab/gitlab.rb
gitlab_rails['allowed_hosts'] = ['gitlab.example.com']
沒有解決問題,試試搜尋本站其他內容

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料