溫馨提示×

CentOS Golang如何配置防火墻

小樊
96
2025-02-12 17:35:30
欄目: 編程語言

在CentOS系統中配置Golang應用程序的防火墻,通常涉及到兩個步驟:配置CentOS的防火墻規則以允許Golang應用程序的網絡通信,以及確保Golang應用程序本身監聽正確的端口。以下是詳細的步驟:

1. 配置CentOS防火墻

CentOS 7及以上版本默認使用firewalld作為防火墻管理工具。你可以使用firewall-cmd命令來配置防火墻規則。

安裝firewalld(如果尚未安裝)

sudo yum install firewalld

啟動并啟用firewalld服務

sudo systemctl start firewalld
sudo systemctl enable firewalld

添加防火墻規則

假設你的Golang應用程序監聽在端口8080上,你可以添加一個規則來允許該端口的TCP流量。

sudo firewall-cmd --permanent --zone=public --add-port=8080/tcp

重新加載防火墻配置

sudo firewall-cmd --reload

2. 確保Golang應用程序監聽正確的端口

在你的Golang應用程序中,確保它監聽在正確的端口上。例如,如果你使用的是net/http包,代碼可能如下所示:

package main

import (
    "log"
    "net/http"
)

func main() {
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        w.Write([]byte("Hello, World!"))
    })

    log.Println("Starting server on :8080")
    if err := http.ListenAndServe(":8080", nil); err != nil {
        log.Fatal(err)
    }
}

驗證配置

檢查防火墻狀態

sudo firewall-cmd --state

查看開放的端口

sudo firewall-cmd --list-all

你應該能看到類似以下的輸出,表明端口8080已經開放:

public (default, active)
  interfaces: lo eth0
  sources: 
  services: ssh http https
  ports: 8080/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

測試應用程序

確保你的Golang應用程序正在運行,并且可以從其他機器訪問。你可以使用curl或瀏覽器來測試:

curl http://your-server-ip:8080

如果一切配置正確,你應該能看到"Hello, World!"的響應。

通過以上步驟,你已經成功配置了CentOS防火墻以允許Golang應用程序的網絡通信。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女