我在CentOS 7上构建了一个HAProxy并启用了端口8080的统计页面。它似乎工作正常。 当我将端口设置为8888时,HAProxy无法工作并给我一些反馈 在那之后,我尝试了很多方法来解决这个问题,但问题仍然存在。
有人可以帮我处理这个问题吗?
haprxoy.cfg
/etc/haproxy/haproxy.cfg
端口8080没问题,8888无效。
# [HAPROXY DASHBOARD]
listen stats :8888
mode http
stats enable
stats hide-version
stats realm Haproxy\ Statistics
stats uri /
stats auth haproxy:haproxy
stats refresh 10s
服务状态
服务haproxy状态
systemd[1]: Started HAProxy Load Balancer.
haproxy-systemd-wrapper[2358]: haproxy-systemd-wrapper: executing /usr/sbin/haproxy -f /etc/haproxy/haproxy.cf...id -Ds
haproxy-systemd-wrapper[2358]: [ALERT] 012/095413 (2359) : Starting proxy stats: cannot bind socket [0.0.0.0:8888]
haproxy-systemd-wrapper[2358]: haproxy-systemd-wrapper: exit, haproxy RC=256
/etc/sysctl.conf中
有人说可能是虚拟IP 问题,所以我按照说明添加下面的设置然后运行sysctl -p
net.ipv4.ip_nonlocal_bind=1
网络配置
ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN qlen 1000
link/ether 00:15:5d:0a:09:05 brd ff:ff:ff:ff:ff:ff
inet 192.168.4.117/24 brd 192.168.4.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fe80::215:5dff:fe0a:905/64 scope link
valid_lft forever preferred_lft forever
听力端口
ss --listening
[root@localhost ~]# ss --listening
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
nl UNCONN 0 0 rtnl:NetworkManager/792 *
nl UNCONN 0 0 rtnl:kernel *
nl UNCONN 0 0 rtnl:avahi-daemon/671 *
nl UNCONN 0 0 rtnl:4195096 *
nl UNCONN 4352 0 tcpdiag:ss/3772 *
nl UNCONN 768 0 tcpdiag:kernel *
nl UNCONN 0 0 6:kernel *
nl UNCONN 0 0 7:kernel *
nl UNCONN 0 0 7:systemd/1 *
nl UNCONN 0 0 7:dbus-daemon/680 *
nl UNCONN 0 0 9:auditd/640 *
nl UNCONN 0 0 9:kernel *
nl UNCONN 0 0 9:systemd/1 *
nl UNCONN 0 0 10:kernel *
nl UNCONN 0 0 11:kernel *
nl UNCONN 0 0 15:iprdump/723 *
nl UNCONN 0 0 15:systemd/1 *
nl UNCONN 0 0 15:-4124 *
nl UNCONN 0 0 15:systemd-logind/679 *
nl UNCONN 0 0 15:NetworkManager/792 *
nl UNCONN 0 0 15:iprinit/713 *
nl UNCONN 0 0 15:-4107 *
nl UNCONN 0 0 15:-4125 *
nl UNCONN 0 0 15:-4119 *
nl UNCONN 0 0 15:iprupdate/710 *
nl UNCONN 0 0 15:-4118 *
nl UNCONN 0 0 15:kernel *
nl UNCONN 0 0 15:-4117 *
nl UNCONN 0 0 15:tuned/676 *
nl UNCONN 0 0 16:kernel *
nl UNCONN 0 0 18:kernel *
u_str LISTEN 0 128 /run/lvm/lvmetad.socket 11542 * 0
u_str LISTEN 0 128 /run/systemd/journal/stdout 6697 * 0
u_dgr UNCONN 0 0 /run/systemd/journal/socket 6700 * 0
u_dgr UNCONN 0 0 /dev/log 6702 * 0
u_dgr UNCONN 0 0 /run/systemd/shutdownd 11321 * 0
u_dgr LISTEN 0 128 /run/udev/control 11338 * 0
u_str LISTEN 0 100 public/flush 18726 * 0
u_str LISTEN 0 100 public/showq 18741 * 0
u_str LISTEN 0 30 /var/run/NetworkManager/private-dhcp 17003 * 0
u_dgr UNCONN 0 0 @/org/freedesktop/systemd1/notify 11259 * 0
u_str LISTEN 0 100 private/tlsmgr 18708 * 0
u_str LISTEN 0 30 /var/run/NetworkManager/private 16518 * 0
u_str LISTEN 0 128 /var/run/avahi-daemon/socket 13986 * 0
u_str LISTEN 0 128 /var/run/dbus/system_bus_socket 13998 * 0
u_str LISTEN 0 100 private/rewrite 18711 * 0
u_str LISTEN 0 100 private/bounce 18714 * 0
u_str LISTEN 0 100 private/defer 18717 * 0
u_str LISTEN 0 100 private/trace 18720 * 0
u_str LISTEN 0 100 private/verify 18723 * 0
u_str LISTEN 0 100 private/proxymap 18729 * 0
u_str LISTEN 0 100 private/proxywrite 18732 * 0
u_str LISTEN 0 100 private/smtp 18735 * 0
u_str LISTEN 0 100 private/relay 18738 * 0
u_str LISTEN 0 100 private/error 18744 * 0
u_str LISTEN 0 100 private/retry 18747 * 0
u_str LISTEN 0 100 private/discard 18750 * 0
u_str LISTEN 0 100 private/local 18753 * 0
u_str LISTEN 0 100 private/virtual 18756 * 0
u_str LISTEN 0 100 private/lmtp 18759 * 0
u_str LISTEN 0 100 private/anvil 18762 * 0
u_str LISTEN 0 100 private/scache 18765 * 0
u_str LISTEN 0 100 public/pickup 18697 * 0
u_str LISTEN 0 100 public/cleanup 18701 * 0
u_str LISTEN 0 100 public/qmgr 18704 * 0
u_str LISTEN 0 30 /run/systemd/private 11261 * 0
u_dgr UNCONN 0 0 * 14733 * 6700
u_dgr UNCONN 0 0 * 15011 * 6702
u_dgr UNCONN 0 0 * 12659 * 12658
u_dgr UNCONN 0 0 * 18818 * 6702
u_dgr UNCONN 0 0 * 15244 * 6702
u_dgr UNCONN 0 0 * 16991 * 6702
u_dgr UNCONN 0 0 * 12644 * 6700
u_dgr UNCONN 0 0 * 12658 * 12659
u_dgr UNCONN 0 0 * 19513 * 6700
u_dgr UNCONN 0 0 * 29994 * 6702
u_dgr UNCONN 0 0 * 13899 * 6702
u_dgr UNCONN 0 0 * 16528 * 6702
u_dgr UNCONN 0 0 * 30457 * 6702
u_dgr UNCONN 0 0 * 18632 * 6702
u_dgr UNCONN 0 0 * 16504 * 6702
raw UNCONN 0 0 :::ipv6-icmp :::*
tcp UNCONN 0 0 *:ipproto-5353 *:*
tcp UNCONN 0 0 *:ipproto-50900 *:*
tcp LISTEN 0 100 127.0.0.1:smtp *:*
tcp LISTEN 0 128 *:ssh *:*
tcp LISTEN 0 100 ::1:smtp :::*
tcp LISTEN 0 128 :::ssh :::*
答案 0 :(得分:24)
首先谢谢你们
我通过以下命令解决了这个问题
js
对我有用!
答案 1 :(得分:2)
setsebool显示正确的方向。 这是一个SELinux问题。尝试为SELinux安装工具链: yum install policycoreutils policycoreutils-python selinux-policy selinux-policy-targeted libselinux-utils setroubleshoot-server setools setools-console mcstrans
键入“selinux permissive
”按“记录按钮”,然后尝试启动
服务。他们失败了。
然后:grep haprox /var/log/audit/audit.log | audit2allow -M haproxy
并通过
semodule -i haproxy.pp
完成!
答案 2 :(得分:2)
在/etc/sysctl.conf上添加net.ipv4.ip_nonlocal_bind = 1
sysctl -p
重新启动haproxy服务(service restart haproxy)。它会起作用。
答案 3 :(得分:1)
您不必总是 dosetsebool -P haproxy_connect_any = 1
对我来说,问题是我无法绑定的端口实际上正在运行。
因此,在我的情况下(在ubuntu上),我使用fuser tcp/8888
表示它在某些XXXX端口上已启动。因此,请摆脱该fuser -k tcp/8888
。就我而言,它正常启动了。
答案 4 :(得分:0)
的/ etc / SYSCONFIG / selinux的 SELINUX =容许
重启
为我工作
答案 5 :(得分:0)
Code Man的答案有效,但是您也可以使用以下方法来为您的端口管理selinux:
yum -y install policycoreutils-python
semanage port -m -t http_port_t -p tcp 8080
systemctl restart haproxy
systemctl status haproxy
答案 6 :(得分:0)
我想这是SELinux问题。 尝试setenforce 0,然后重新启动HAProxy服务。如果此更改后HAProxy正常运行,请使用setenforce 1恢复执行状态,然后运行setsebool -P haproxy_connect_any更改可能影响此功能的SELinux布尔值,然后再次重新启动服务。
答案 7 :(得分:0)
对我有用的是杀死我想使用的端口(6443)上运行的所有服务:
$fuser -k 6443/tcp
然后我跑了
$sudo systemctl restart haproxy
答案 8 :(得分:0)
我在OpnSense防火墙(FreeBSD)上收到了类似的消息Starting frontend <FrontendName>: cannot bind socket <IP:port>
。
我绑定到一个域名,事实证明它指向我的公共地址,这是一个问题。使用回送地址可使HAProxy正常工作。
这个与Linux相关的答案也给出了一些提示:https://stackoverflow.com/a/41009557/964053 ...因为我记得这个在pfSense上的工作。在这里可能还会发现更多魔术!