![在 EC2 实例(Windows)上执行远程命令的最佳方法是什么?](https://linux22.com/image/550813/%E5%9C%A8%20EC2%20%E5%AE%9E%E4%BE%8B%EF%BC%88Windows%EF%BC%89%E4%B8%8A%E6%89%A7%E8%A1%8C%E8%BF%9C%E7%A8%8B%E5%91%BD%E4%BB%A4%E7%9A%84%E6%9C%80%E4%BD%B3%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我正在尝试在远程 EC2 实例 (Windows) 上执行命令,但无法从本地计算机连接远程服务器。我已为所有端口打开 ICMP。
答案1
ICMP 在这里不会为您做任何事情。
通常,您会使用带有远程桌面的终端服务来访问具有完整 GUI(视频、键盘和鼠标)的远程 Windows 服务器并访问本地驱动器以进行文件复制。
远程桌面允许您首先访问您的服务器,在本地测试您的远程脚本/可执行文件(即确保您的路径正确,您的预期输出和输入正常等)。
不管你用远程命令做什么,任何位于远程的生产 Windows 机器都应该安全地可以通过远程桌面访问,因为进行定期维护、安装 Windows 更新等在某些时候将需要这种访问。
远程桌面使用 TCP 端口 3389 开放并且还要求启用终端服务。
为了安全地访问您的远程 Windows Server,VPN 连接/隧道必不可少:您绝对不想向 Internet 开放 TCP 端口 135(远程过程调用)和 445(Microsoft-DS 服务)!
如果 Windows Server 前面有硬件防火墙(并且该防火墙支持 IPSec 隧道),则使用 Windows 内置的 PPTP/L2TP over IPSec 或 IPSec 隧道设置安全连接。如果您要定期从一台计算机执行远程服务器上的命令,则 PPTP 或 L2TP over IPSec 客户端 VPN 连接就足够了;如果您希望多台计算机定期访问此远程 Windows 服务器,则站点到站点的 IPSec 隧道可能更有意义。
一旦您建立了与服务器的安全连接(并且我还想使用单独的硬件防火墙中的数据包过滤器或至少使用 Windows 防火墙来限制公共 IP 访问),您现在可以使用类似的psexec
(或者如果是本机的,可能是 PowerShell)来执行您想要远程运行的内置命令或脚本/命令行实用程序。
答案2
答案3
那么在端口 1234 上运行一个简单的网站怎么样?您可以轻松编写 aspx 代码来执行命令: