1. 程式人生 > 實用技巧 >spring cloud gateway 啟動報錯,Failed to bind on [0.0.0.0:xxx] bind(..) failed: 許可權不夠

spring cloud gateway 啟動報錯,Failed to bind on [0.0.0.0:xxx] bind(..) failed: 許可權不夠

最近把作業系統遷移到了deepin,不得不說Linux中需要學習的還是有很多的,本地啟動閘道器的時候就遇到一個坑,特此記錄一下,報錯資訊。

Caused by: reactor.netty.ChannelBindException: Failed to bind on [0.0.0.0:188]
	Suppressed: java.lang.Exception: #block terminated with an error
		at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:133) ~[reactor-core-3.2.19.RELEASE.jar:3.2.19.RELEASE]
		at reactor.core.publisher.Mono.block(Mono.java:1531) ~[reactor-core-3.2.19.RELEASE.jar:3.2.19.RELEASE]
		at reactor.netty.http.server.HttpServer.bindNow(HttpServer.java:128) ~[reactor-netty-0.8.20.RELEASE.jar:0.8.20.RELEASE]
		at reactor.netty.http.server.HttpServer.bindNow(HttpServer.java:111) ~[reactor-netty-0.8.20.RELEASE.jar:0.8.20.RELEASE]
		at org.springframework.boot.web.embedded.netty.NettyWebServer.startHttpServer(NettyWebServer.java:102) ~[spring-boot-2.1.16.RELEASE.jar:2.1.16.RELEASE]
		at org.springframework.boot.web.embedded.netty.NettyWebServer.start(NettyWebServer.java:73) ~[spring-boot-2.1.16.RELEASE.jar:2.1.16.RELEASE]
		at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext$ServerManager.start(ReactiveWebServerApplicationContext.java:223) ~[spring-boot-2.1.16.RELEASE.jar:2.1.16.RELEASE]
		at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.startReactiveWebServer(ReactiveWebServerApplicationContext.java:124) ~[spring-boot-2.1.16.RELEASE.jar:2.1.16.RELEASE]
		at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.finishRefresh(ReactiveWebServerApplicationContext.java:116) ~[spring-boot-2.1.16.RELEASE.jar:2.1.16.RELEASE]
		at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:553) ~[spring-context-5.1.17.RELEASE.jar:5.1.17.RELEASE]
		at org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext.refresh(ReactiveWebServerApplicationContext.java:66) ~[spring-boot-2.1.16.RELEASE.jar:2.1.16.RELEASE]
		at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:744) ~[spring-boot-2.1.16.RELEASE.jar:2.1.16.RELEASE]
		at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:391) ~[spring-boot-2.1.16.RELEASE.jar:2.1.16.RELEASE]
		at org.springframework.boot.SpringApplication.run(SpringApplication.java:312) ~[spring-boot-2.1.16.RELEASE.jar:2.1.16.RELEASE]
		at org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:140) [spring-boot-2.1.16.RELEASE.jar:2.1.16.RELEASE]
		at org.muyuan.core.launch.MuyuanApplication.run(MuyuanApplication.java:35) [muyuan-core-launch-2.6.0.RELEASE.jar:na]
		at org.muyuan.gateway.GateWayApplication.main(GateWayApplication.java:18) [classes/:na]
Caused by: io.netty.channel.unix.Errors$NativeIoException: bind(..) failed: 許可權不夠

注意關鍵資訊bind 188埠提示,許可權不夠。原來是Linux下1024以下的埠需要sudo,通過修改埠就可以正常啟動了。

或者這樣來授權你的可執行路徑

setcap cap_net_bind_service=+eip /home/tengine/nginx/tengine/sbin/nginx

清除授權

setcap -r nginx