CentOS上配置Golang網絡需關注環境變量、防火墻、代理等設置,以下是關鍵操作:
環境變量配置
export HTTP_PROXY=http://proxy.example.com:port
export HTTPS_PROXY=https://proxy.example.com:port
永久生效需添加到~/.bashrc
并執行source ~/.bashrc
。export GOPROXY=https://goproxy.cn,direct # 國內推薦代理
永久生效同上。系統網絡配置
/etc/sysconfig/network-scripts/ifcfg-ensXX
):BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
ONBOOT=yes
重啟網絡服務:sudo systemctl restart network
。防火墻與SELinux
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
```。
sudo setsebool -P httpd_can_network_connect 1
```。
代碼級網絡參數
net
包設置TCP參數(如KeepAlive):conn, _ := net.Dial("tcp", "example.com:80")
if tcpConn, ok := conn.(*net.TCPConn); ok {
tcpConn.SetKeepAlive(true)
tcpConn.SetKeepAlivePeriod(30 * time.Second)
}
```。
調試與驗證
ping example.com
或curl -x http://proxy:port example.com
。go env GOPROXY
。注意:根據實際需求選擇配置方式,代理設置優先通過環境變量或代碼實現,系統級配置需謹慎操作。若遇復雜網絡問題,可結合tcpdump
等工具抓包分析。