使用节点包隧道ssh在本地机器端口上公开AWS EC2端口



在我的AWS EC2实例中,我有一个API服务在3030端口上运行。我想在本地主机:3030中访问该服务。我想使用这个npm-lib隧道ssh,我的配置对象是这样的:

const sshConfigs = {
keepAlive: true,
username: 'ubuntu',
host: 'ssh.server.host.com.br',
port: 22,
dstHost: 'ec2-x-xxx-xxx-xxx.compute-1.amazonaws.com',
dstPort: '3030',
privateKey: fs.readFileSync(
path.join(__dirname, 'ssh_key', 'key.pem')
),
};

这非常适合连接到位于3306端口的RDS主机,但我无法让它与EC2机器上运行的服务一起工作。

我有关于EC2的所有信息,可能是访问它所必需的。

编辑1

API在EC2实例的3030端口上运行(要连接到EC2,需要SSH隧道(,在我的本地计算机上,我想访问该API,向API发出请求。我不确定SSH隧道是否是实现这一目标的途径,对新的建议开放。

您的情况似乎是:

  • 您在公共子网(Public-EC2(中有一个Amazon EC2实例
  • 您在私有子网(Private-EC2(中有一个Amazon EC2实例,该实例在端口3030上运行API
  • 您希望通过SSH从自己的计算机(在Internet上(连接到Private-EC2,并使用Public-EC2进行端口转发

在这种情况下,您的安全组应配置如下:

  • Public-EC2关联的安全组应该具有入站规则,允许从您的IP地址或整个Internet进行SSH连接(这似乎配置正确(;允许所有">出站规则
  • Private-EC2关联的安全组应具有入站规则,这些规则允许在端口3030上从Public-EC2进行连接(即,安全组应特别引用Public-EC2安全组(。您可能还希望允许SSH的入站连接,以便可以通过Public-EC2登录到实例

相关内容

  • 没有找到相关文章

最新更新