centos

CentOS Golang如何配置防火墙

小樊
82
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
看了该问题的人还看了