如何在不同机器上运行并连接gRPC服务器与客户端
实现gRPC服务器远程连接的修改方案
修改服务器绑定地址
原代码中server.add_insecure_port("localhost:50051")仅允许本地访问,将其改为绑定所有网卡的地址,让远程机器能够连接:server.add_insecure_port("0.0.0.0:50051")客户端连接配置
客户端需将连接地址替换为服务器所在机器的实际IP(局域网IP或公网IP),示例代码:channel = grpc.insecure_channel("服务器IP地址:50051") stub = xyz_pb2_grpc.xyzStub(channel)网络与防火墙检查
- 确保服务器所在机器的50051端口已开放防火墙入站规则;
- 若服务器在局域网内,客户端需与服务器处于同一网络环境;
- 若服务器在公网NAT后(如家用路由器下),需在路由器上配置端口转发,将外部端口映射到服务器的50051端口。
修改后的完整服务器代码:
import grpc from concurrent import futures import xyz_pb2_grpc from your_module import xyzServicer # 替换为实际的servicer模块路径 server = grpc.server(futures.ThreadPoolExecutor(max_workers=10)) xyz_pb2_grpc.add_xyzServicer_to_server( xyzServicer(), server ) # 修改为监听所有网卡的50051端口 server.add_insecure_port("0.0.0.0:50051") server.start() print("server started, listening on 0.0.0.0:50051") server.wait_for_termination()
内容的提问来源于stack exchange,提问作者Xavier
相关产品推荐
相关产品推荐

