拨打 tcp 127.0.0.1:9091: connect: connection refused
dial tcp 127.0.0.1:9091: connect: connection refused
我正在使用 gRPC 应用程序并构建一个简单的应用程序。在文件下方。
syntax = "proto3";
option java_multiple_files = true;
package com.grpc;
message HelloRequest {
string firstName = 1;
string lastname = 2;
}
message HelloResponse {
string greeting = 1;
}
service HelloService {
rpc hello(HelloRequest) returns (HelloResponse);
}
正常生成文件
User.java -> generated from protoc compiler
userGrpc.java -> generated from protoc compiler
GRPCService.java
package GRPCService;
import java.io.IOException;
import io.grpc.Server;
import io.grpc.ServerBuilder;
import user.UserService;
public class GPRCService {
public static void main(String[] args) throws IOException, InterruptedException {
Server server = ServerBuilder.forPort(9091).addService(new UserService()).build();
server.start();
System.out.println("Server started at " + server.getPort());
server.awaitTermination();
}
}
显示服务器的system.out.println是运行;
Server started at 9091
然后我在 ubuntu 18.04
的端口 9091 上打开了 TCP 的防火墙规则
sudo ufw allow from any to any port 9091 proto tcp
结果:
java 28277 ubuntu 49u IPv6 478307 0t0 TCP *:9091 (LISTEN)
我什至可以从终端卷曲
* Rebuilt URL to: http://localhost:9091/
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 9091 (#0)
> GET / HTTP/1.1
> Host: localhost:9091
> User-Agent: curl/7.58.0
> Accept: */*
>
Warning: Binary output can mess up your terminal. Use "--output -" to tell
Warning: curl to output it to your terminal anyway, or consider "--output
Warning: <FILE>" to save to a file.
* Failed writing body (0 != 40)
* stopped the pause stream!
* Closing connection 0
卷曲命令
curl -v http://localhost:9091
但是当从 gui 客户端执行时
https://github.com/gusaul/grpcox
我收到连接被拒绝的消息。
dial tcp 127.0.0.1:9091: connect: connection refused
我没有使用任何 VPN 或代理,GUI 应用程序实际上 运行 在一个容器中。
docker run -p 6969:6969 -v {ABSOLUTE_PATH_TO_LOG}/log:/log -d gusaul/grpcox
如果有人可以帮助我。
谢谢堆栈!
如果您 运行ning grpcox
作为 docker 容器,您需要为容器提供主机网络访问权限(最简单),以便它可以访问服务器 运行ning 在主机的 (!) 端口 9901
即 localhost:9901
上,或者为其提供一个 DNS 地址,它可以解析您的主机地址,即 your-host:9901
.
对于主机网络访问,运行容器...
docker run --net=host ... gusaul/grpcox
您可能需要禁用您可能正在使用的任何 VPN,因为我就是这种情况。
我正在使用 gRPC 应用程序并构建一个简单的应用程序。在文件下方。
syntax = "proto3";
option java_multiple_files = true;
package com.grpc;
message HelloRequest {
string firstName = 1;
string lastname = 2;
}
message HelloResponse {
string greeting = 1;
}
service HelloService {
rpc hello(HelloRequest) returns (HelloResponse);
}
正常生成文件
User.java -> generated from protoc compiler
userGrpc.java -> generated from protoc compiler
GRPCService.java
package GRPCService;
import java.io.IOException;
import io.grpc.Server;
import io.grpc.ServerBuilder;
import user.UserService;
public class GPRCService {
public static void main(String[] args) throws IOException, InterruptedException {
Server server = ServerBuilder.forPort(9091).addService(new UserService()).build();
server.start();
System.out.println("Server started at " + server.getPort());
server.awaitTermination();
}
}
显示服务器的system.out.println是运行;
Server started at 9091
然后我在 ubuntu 18.04
的端口 9091 上打开了 TCP 的防火墙规则sudo ufw allow from any to any port 9091 proto tcp
结果:
java 28277 ubuntu 49u IPv6 478307 0t0 TCP *:9091 (LISTEN)
我什至可以从终端卷曲
* Rebuilt URL to: http://localhost:9091/
* Trying 127.0.0.1...
* TCP_NODELAY set
* Connected to localhost (127.0.0.1) port 9091 (#0)
> GET / HTTP/1.1
> Host: localhost:9091
> User-Agent: curl/7.58.0
> Accept: */*
>
Warning: Binary output can mess up your terminal. Use "--output -" to tell
Warning: curl to output it to your terminal anyway, or consider "--output
Warning: <FILE>" to save to a file.
* Failed writing body (0 != 40)
* stopped the pause stream!
* Closing connection 0
卷曲命令
curl -v http://localhost:9091
但是当从 gui 客户端执行时
https://github.com/gusaul/grpcox
我收到连接被拒绝的消息。
dial tcp 127.0.0.1:9091: connect: connection refused
我没有使用任何 VPN 或代理,GUI 应用程序实际上 运行 在一个容器中。
docker run -p 6969:6969 -v {ABSOLUTE_PATH_TO_LOG}/log:/log -d gusaul/grpcox
如果有人可以帮助我。
谢谢堆栈!
如果您 运行ning grpcox
作为 docker 容器,您需要为容器提供主机网络访问权限(最简单),以便它可以访问服务器 运行ning 在主机的 (!) 端口 9901
即 localhost:9901
上,或者为其提供一个 DNS 地址,它可以解析您的主机地址,即 your-host:9901
.
对于主机网络访问,运行容器...
docker run --net=host ... gusaul/grpcox
您可能需要禁用您可能正在使用的任何 VPN,因为我就是这种情况。