配置 RHEL 服务,使其识别主机 EC2 的 Amazon IP 地址

问题描述 投票:0回答:1

版本

OS: RHEL 8.x

我已经安装了一项服务 - 称之为

foosvc
- 到
/usr/lib/systemd/system/foo.service
,配置如下:

[Unit]
...
After=syslog.target network.target

[Service]
...
ExecStart=/usr/sbin/foosvc fg
...

[Install]
WantedBy=multi-user.target

当主机 EC2 重新启动时,此服务将按预期重新启动。但是,似乎存在竞争条件:即,如果我手动重新启动服务,

sudo systemctl restart foosvc

它监听端口 6000,如下所示:

foosvc   780 username   21u  IPv4  22462      0t0  TCP 127.0.0.1:6000 (LISTEN)
foosvc   780 username   21u  IPv4  22462      0t0  TCP 172.30.41.149:6000 (LISTEN)

其中 IP 地址

172.30.41.149
是 AWS 内部的 IP,外部 IP 是附加到此 EC2 的弹性 IP(此处未列出)。

但是,如果我从仪表板重新启动 EC2,

foosvc
会按预期自动启动,但仅侦听端口 6000 以获取环回 IP 地址:

foosvc   780 username   21u  IPv4  22462      0t0  TCP 127.0.0.1:6000 (LISTEN)

问题:如何配置

foosvc
以便在系统重新启动时,
foosvc
侦听本地主机和内部 AWS IP 地址上的端口 6000?

注意:

foosvc
在端口 6000 上侦听 TCP 和 UDP。

amazon-web-services amazon-ec2 rhel
1个回答
0
投票

私有IP地址通过DHCP分配。在开始服务之前,您需要使接口变得可路由。

  1. /etc/systemd/network
    中为您的主 ENI 创建配置文件,并指定
    RequiredForOnline=routable
  2. 在您的服务配置文件中,创建对
    systemd-networkd-wait-online
    的需求依赖项。确保其已启用。
© www.soinside.com 2019 - 2024. All rights reserved.