我有一个带有 Ubuntu 的 EC2 实例。我使用sudo ufw enable
并且之后只允许mongodb端口
sudo ufw allow 27017
当 ssh 连接中断时,我无法重新连接
我有一个带有 Ubuntu 的 EC2 实例。我使用sudo ufw enable
并且之后只允许mongodb端口
sudo ufw allow 27017
当 ssh 连接中断时,我无法重新连接
# 更新
最简单的方法是更新实例的用户数据
停止您的实例
右键单击 (windows) 或 ctrl + 单击 (Mac) 实例以打开上下文菜单,然后转到Instance Settings
->Edit User Data
或选择实例并转到Actions
-> Instance Settings
->Edit User Data
如果您仍在使用旧的 AWS 控制台,请选择实例,转到Actions
-> Instance Settings
->View/Change User Data
并粘贴这个
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
ufw disable
iptables -L
iptables -F
--//
来源在这里
# 旧答案
使用另一个实例分离并修复问题实例的卷
启动一个新实例(恢复实例)。
停止原始实例(不要终止)
从原始实例中分离卷(问题卷)
将其作为 /dev/sdf 附加到恢复实例。
通过 ssh/putty 登录到恢复实例
运行sudo lsblk
以显示附加卷并确认问题卷的名称。它通常以/dev/xvdf
. 我的是/dev/xvdf1
挂载问题卷。
$ sudo mount /dev/xvdf1 /mnt
$ cd /mnt/etc/ufw
打开ufw
配置文件
$ sudo vim ufw.conf
按 i 编辑文件。
更改ENABLED=yes
为ENABLED=no
键入 Ctrl-C 并键入 :wq 以保存文件。
使用以下命令显示 ufw conf 文件的内容并确保ENABLED=yes
已更改为ENABLED=no
$ sudo cat ufw.conf
卸载卷
$ cd ~
$ sudo umount /mnt
从恢复实例中分离问题卷并将其重新附加到原始实例作为 /dev/sda1。
启动原始实例,您应该能够重新登录。
来源:这里
我有同样的问题,发现这个步骤有效:
1-停止您的实例
2-转到Instance Settings
->View/Change user Data
更新:新 AWS 控制台 UI 上的路径
右键单击您的Stopped
实例 -> Instance Settings
->Edit User Data
3-将其粘贴到选项上Modify user data as text
并保存
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
ufw disable
iptables -L
iptables -F
--//
4-启动您的实例
希望这对你有用!
注意:较新的 Linux 内核可能会在内部将您的设备重命名为 /dev/xvdf 到 /dev/xvdp,即使输入的设备名称是 /dev/sdf 到 /dev/sdp。
cd ~ mkdir lnx1 sudo mount /dev/xvdf ./lnx1
cd lnx1 sudo vim ufw.conf
现在找到 ENABLED=yes 并将其更改为 ENABLED=no。
请务必先卸载卷:
sudo umount ./lnx1/
你好 !!你很好。
其他方法对我不起作用。我的 EC2 实例基于 Bitnami 映像。由于市场锁定,无法将卷附加到另一个实例。
因此,请停止问题实例并将此脚本粘贴到 instanceSettings > view-change user data 中。
这种方法不需要分离卷,因此与其他方法相比更直接。
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
ufw disable
iptables -L
iptables -F
--//
在粘贴之前必须停止实例,在此之后启动您的实例,您应该能够 ssh。
我知道这是一个老问题,但我通过在查看/更改用户数据中添加一个命令来修复我的问题bootcmd
我首先停止了我的实例
然后我在用户数据中添加了这个
#cloud-config
bootcmd:
- cloud-init-per always fix_broken_ufw_1 sh -xc "/usr/sbin/service ufw stop >> /var/tmp/svc_$INSTANCE_ID 2>&1 || true"
- cloud-init-per always fix_broken_ufw_2 sh -xc "/usr/sbin/ufw disable>> /var/tmp/ufw_$INSTANCE_ID 2>&1 || true"
#注意:我的实例是 Ubuntu
Content-Type: multipart/mixed; boundary="//"
MIME-Version: 1.0
--//
Content-Type: text/cloud-config; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="cloud-config.txt"
#cloud-config
cloud_final_modules:
- [scripts-user, always]
--//
Content-Type: text/x-shellscript; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="userdata.txt"
#!/bin/bash
set -x
USERNAME="ubuntu"
ls -Al
ls -Al /home
ls -Al /home/${USERNAME}
ls -Al /home/${USERNAME}/.ssh
sudo cat /home/${USERNAME}/.ssh/authorized_keys
ls -Al /etc/ssh
ls -ld /etc/ssh
sudo grep -vE '^$|^#' /etc/hosts.*
sudo sed -i -e 's/^\([^#].*\)/# \1/g' /etc/hosts.deny
sudo sed -i -e 's/^\([^#].*\)/# \1/g' /etc/hosts.allow
sudo grep -vE '^$|^#' /etc/hosts.*
sed '/^$\|^#/d' /etc/ssh/sshd_config
chown -v root:root /home
chmod -v 755 /home
chown -v ${USERNAME}:${USERNAME} /home/${USERNAME} -R
chmod -v 700 /home/${USERNAME}
chmod -v 700 /home/${USERNAME}/.ssh
chmod -v 600 /home/${USERNAME}/.ssh/authorized_keys
sudo tail /var/log/auth.log
sudo ufw status numbered
sudo ufw disable
sudo iptables -F
sudo service iptables stop
sudo service sshd restart
sudo service sshd status -l
--//