Python Virtualbox作为远程服务器

Python Virtualbox作为远程服务器,python,virtualbox,Python,Virtualbox,我有一个python脚本,它可以在我的虚拟机上使用linux-ubuntu(最新版)运行得很好,我有一个与我的网站共享的主机(价格便宜,python脚本运行速度非常慢)。 我想知道是否可以将我的虚拟机变成一个“服务器”,这样我就可以从我的真实服务器调用我的虚拟机,然后处理响应。 一个简单的例子:假设在我的虚拟机中,我有一个python脚本,它接受sys.argv[1]这是一个字符串并输出其长度,在我的场景中,我从服务器传递字符串,虚拟机使用我传递的参数运行脚本,然后我可以在我的web服务器中处理

我有一个python脚本,它可以在我的虚拟机上使用linux-ubuntu(最新版)运行得很好,我有一个与我的网站共享的主机(价格便宜,python脚本运行速度非常慢)。
我想知道是否可以将我的虚拟机变成一个“服务器”,这样我就可以从我的真实服务器调用我的虚拟机,然后处理响应。 一个简单的例子:假设在我的虚拟机中,我有一个python脚本,它接受
sys.argv[1]
这是一个字符串并输出其长度,在我的场景中,我从服务器传递字符串,虚拟机使用我传递的参数运行脚本,然后我可以在我的web服务器中处理响应。
这不是一个永久的解决方案,我只需要几天。 这可能吗?这简单吗? 我发现最有用的东西是

提前感谢Nico。

您必须找到一种在VM和托管机器之间进行通信的方法。为此,您可以使用几乎任何您选择的编程语言。Python在这里可能非常简单。您必须学习套接字编程(请参阅)

但是,使用本地机器上的VM作为服务器可能会很困难,因为它必须可以从internet访问(这可能不是因为路由器中的NAT)。这意味着您必须找出主机是否允许通过python打开套接字。如果它不允许这样做,您可能不得不采取另一种方法来解决问题。如果允许的话,托管机器上运行的python脚本必须是服务器,VM上的脚本必须是在服务器上注册的客户端


这可能看起来很复杂,但如果您了解套接字是如何工作的,则情况并非如此。您必须记住的唯一一件事是,您的VM是客户机,托管机器是服务器

您必须找到一种在虚拟机和托管机器之间进行通信的方法。为此,您可以使用几乎任何您选择的编程语言。Python在这里可能非常简单。您必须学习套接字编程(请参阅)

但是,使用本地机器上的VM作为服务器可能会很困难,因为它必须可以从internet访问(这可能不是因为路由器中的NAT)。这意味着您必须找出主机是否允许通过python打开套接字。如果它不允许这样做,您可能不得不采取另一种方法来解决问题。如果允许的话,托管机器上运行的python脚本必须是服务器,VM上的脚本必须是在服务器上注册的客户端


这可能看起来很复杂,但如果您了解套接字是如何工作的,则情况并非如此。您必须记住的唯一一件事是,您的VM是客户机,托管机器是服务器

谢谢!如果我在我的ubuntu客户端上安装openssh服务器,然后使用php命令ssh2_exec从我的Web服务器在VM上运行python脚本,那么默认情况下,您的openssh服务器将无法从internet访问(因此也无法从您的Web服务器访问)。要实现这一点,您需要在路由器中转发一个端口。有很多很好的教程展示了如何做到这一点。请注意,您的外部IP(可从internet访问的IP)经常更改。如果您不想每次都在Web服务器上的脚本中更改它,您可能想看看dyndns。谢谢!如果我在我的ubuntu客户端上安装openssh服务器,然后使用php命令ssh2_exec从我的Web服务器在VM上运行python脚本,那么默认情况下,您的openssh服务器将无法从internet访问(因此也无法从您的Web服务器访问)。要实现这一点,您需要在路由器中转发一个端口。有很多很好的教程展示了如何做到这一点。请注意,您的外部IP(可从internet访问的IP)经常更改。如果您不想每次都在Web服务器上的脚本中更改它,那么您可能需要看看dyndns。