使用 NAT 时,如何将运行 libvirt/KVM 的服务器上的端口转发到 VM 上的指定端口?
例如,主机的公共 IP 为 1.2.3.4。我想将端口 80 转发到 10.0.0.1,将端口 22 转发到 10.0.0.2。
我假设我需要添加 iptables 规则,但我不确定在哪里合适以及应该指定什么。
iptables -L 的输出
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT tcp -- anywhere anywhere tcp dpt:domain
ACCEPT udp -- anywhere anywhere udp dpt:bootps
ACCEPT tcp -- anywhere anywhere tcp dpt:bootps
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere 10.0.0.0/24 state RELATED,ESTABLISHED
ACCEPT all -- 10.0.0.0/24 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在 Ubuntu 服务器上使用 ssh 设置无密码登录,但我不断收到:
Agent admitted failure to sign using the key
Run Code Online (Sandbox Code Playgroud)
并提示输入密码。
我生成了新的 rsa 密钥。在系统重新启动之前,它工作得很好。
所有链接都将我引向此错误,但没有任何效果。SSH 代理仍未运行。
如何解决?也许文件需要特定的权限?
我正在使用 Ubuntu 10.10。
我通常擅长计算机,但主要使用 Windows,我对 Ubuntu 不太熟悉。我正在尝试建立一个网站,我正在与一位在学校 IT 部门工作的朋友交谈,他正在给我建议。
他告诉我,我需要打开一个命令提示符并输入,sudo /etc/init.d/apache2 start但是当我做的时候,我看到的只是sudo: /etc/init.d/apache2: command not found.
我告诉我的朋友这个错误,他说我的文件/dev/null已满,所以我试图找到它,但它是一个隐藏文件。我知道如何在 Windows 中查看隐藏文件,但在 Ubuntu 中不知道。
我的朋友现在离线,所以我希望有人能告诉我如何删除我的/dev/null? 谢谢!
我在 Asrock E3C226D2I 板上运行 Ubuntu 15.10 服务器。当我获得内核更新或运行 update-initramfs -u 时,我收到有关缺少固件的警告:
root@fileserver:~# update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.2.0-27-generic
W: Possible missing firmware /lib/firmware/ast_dp501_fw.bin for module ast
Run Code Online (Sandbox Code Playgroud)
我找不到关于这个特定固件的很多信息,除了它可能适用于我的视频卡。由于我正在运行服务器,因此我并不真正关心图形(没有连接显示器)。
一切正常,所以我暂时忽略它,但有没有办法解决这个问题?
假设我已经全新安装了 Ubuntu,我应该采取哪些步骤来保护它以用作 Rails 应用程序服务器?
我有一个显示权限掩码的目录drwsrwsr-x。当我尝试重置755对 S的权限时仍然存在。
什么是“s”,为什么我不能将权限改回 775 ( drwxrwxr-x)?
当我使用以下命令重新启动网络时:
/etc/init.d/networking restart
Run Code Online (Sandbox Code Playgroud)
我收到此警告:
Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces
Run Code Online (Sandbox Code Playgroud)
那么现在进行更改后重新启动网络的最佳方法是什么?
这个问题也适用于 Debian,因为 netbase 包是从 debian 继承的。
我有一个 Ubuntu 服务器,每次启动时我都会在其中自动挂载一个外部硬盘驱动器。
为此,我在根分区上创建了一个空文件夹,并将驱动器安装在该文件夹的“内部”。
但是,如果我在驱动器未正确安装时对此路径执行备份怎么办?备份会填满我的根分区!
我可以通过执行以下操作来确保每次都安装驱动器:
sudo mount -a
Run Code Online (Sandbox Code Playgroud)
...在每次备份之前。
但是,确保数据永远不会写入空的挂载文件夹的最佳实践是什么(除非真正挂载了外部硬盘驱动器)?
这可以在没有脚本的情况下解决吗?例如说有权限?最佳做法是什么?