如何在 Ubuntu 中将一个 IP 路由到另一个 IP?



这是我的问题:我有一个用于Linux(Ubuntu(的数据科学虚拟机,它将托管我的Docker容器。在这个容器中,我有一个 Python 脚本正在运行。我希望我在 Azure 云中的 C# 客户端与此容器集成。当它通过 XMLRPC 请求通过 ubuntu ip 调用此脚本的函数时,我的主机应将 IP 地址重定向到容器的ip:port/。 Idk 如何进行此 ip 重定向(或者可能称为转发/路由? 我在互联网上找到的最简单的解决方案是XMLRPC。 有没有人可以帮助我解决这个问题,还有比XMLRPC或JSONRPC更好的方法吗?

这是我的客户部分:

[XmlRpcUrl("http://@UbuntuIP:666/ContainerIP:8000/RPC2")] 
public interface ICallServer:IXmlRpcProxy
{
[XmlRpcMethod]
string result(string storageAccountName, string containerName,string imageName);
}
ICallServer icallServerTest = XmlRpcProxyGen.Create<ICallServer>();
var output = icallServerTest.func(params);

因此,如果我做对了,你有一个在 Azure 云中运行的 C# 代码,可以访问你的 VM IP。

我假设你的 Azure 计算机能够访问你的 VM 的 IP。现在,当您在 VM 中启动 Python 容器时,Python 服务器将侦听某个端口。假设此端口8000。你需要的是,你需要启动 docker 容器并将这个端口发布到主机上

docker run -d --name my-python-container -p 8000:8000 my-python-image

现在,你有一个可在<UbuntuIP>:8000上访问的服务,因此可以直接在 C# 代码中使用它。

最新更新