Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes端口转发-错误侦听tcp4 127.0.0.1:88:绑定:权限被拒绝_Kubernetes_Portforwarding_Minikube - Fatal编程技术网

Kubernetes端口转发-错误侦听tcp4 127.0.0.1:88:绑定:权限被拒绝

Kubernetes端口转发-错误侦听tcp4 127.0.0.1:88:绑定:权限被拒绝,kubernetes,portforwarding,minikube,Kubernetes,Portforwarding,Minikube,我正在本地机器上使用minikube。使用kubernetes端口转发时发生此错误。有人能帮忙吗 mjafary$ kubectl port-forward sa-frontend 88:80 Unable to listen on port 88: All listeners failed to create with the following errors: Unable to create listener: Error listen tcp4 127.0.0.1:88: bind

我正在本地机器上使用minikube。使用kubernetes端口转发时发生此错误。有人能帮忙吗

mjafary$ kubectl port-forward  sa-frontend 88:80

Unable to listen on port 88: All listeners failed to create with the following errors: 
Unable to create listener: Error listen tcp4 127.0.0.1:88: bind: permission denied, Unable to create listener: Error listen tcp6 [::1]:88: bind: permission denied
error: Unable to listen on any of the requested ports: [{88 80}] 

可能是您的本地主机-本地计算机在使用ipv4时正在使用ipv6

错误侦听tcp4127.0.0.1:88:绑定:权限被拒绝,无法 创建侦听器:错误侦听tcp6[::1]:88:bind:permission 否认

请禁用IPv6

您能显示输出吗?:

cat /proc/sys/net/ipv6/conf/all/disable_ipv6

我试过sudo如下,它让我通过了拒绝许可的问题。 sudo kubectl港口前sa前端88:80


我现在遇到了一个不同的问题,但将为此创建一个新的跟踪器,以保持情况正常

kubectl
无法打开端口88,因为它是一个特权端口。所有端口=1024,例如使用端口8888而不是88:
kubectl port forward sa前端8888:80
  • 您可以使用
    kubectl
    作为根用户:
    sudo-kubectl-port-forward sa-frontend 88:80
    (不推荐使用,kubectl随后会将其配置作为根用户进行查找)
  • 您可以授予
    kubectl
    二进制文件打开特权端口的能力。深入解释如何执行此操作
  • 如果您想选择第三个选项,这里有一个简单的方法:

    sudo setcap CAP_NET_BIND_SERVICE=+eip /usr/bin/kubectl
    
    这将允许
    kubectl
    打开任何端口,同时仍以普通用户的权限运行。您可以使用

    sudo getcap /usr/bin/kubectl 
    /usr/bin/kubectl = cap_net_bind_service+eip
    

    请注意,这会将权限授予使用二进制文件的人。如果您想要更细粒度的权限,请使用authbind。

    如果本地主机上的目标端口已在使用,则使用kubectl进行端口转发时,您可能会收到“权限被拒绝”错误

    确保没有docker容器或其他应用程序在端口88上运行。

    用户48678可以使用
    sudo
    绕过限制

    添加
    -E
    标志以传递环境

    mjafary$sudo-E kubectl港口前方sa前端88:80
    

    如果未通过
    -E
    ,例如将不会设置
    KUBECONFIG
    环境变量。

    这与ipv6无关。这可能是因为在使用netstat查找进程并使用kill-9命令终止进程后,本地运行的端口与此端口forwardworks冲突!