实际上问题如下,共有三个域(例如site.ru、site2.ru 和site3.ru)。所有三个 DNS 托管提供商均查看相同的 IP 地址(例如 88.88.88.88,这是 Mikrotik ax3 路由器的外部地址)。内网路由器后面有三台服务器,IP 地址分别为 192.168.1.10、192.168.1.11 和 192.168.1.12。这些服务器中的每一个上都安装了 WEB 服务器,并且每个服务器上分别有一个站点 site.ru、site2.ru 和 site3.ru。在这样的配置中是否可以组织从外部网络对每个站点的访问?
RandomDice 779
Asked:
2024-03-31 01:44:53 +0800 CST
我正在尝试使用 QEMU 中的虚拟机。我遇到了一个问题,网络在任何虚拟机中都无法工作。完全没有。决不。
首先我用 Alpine Linux 启动机器:
~/Virtual/alpine $ qemu-system-x86_64 -k en-gb -m 512M -smp cpus=2 -cdrom alpine.iso -drive if=virtio,file=rootfs.img -boot c
并注意到网络无法从 iso 运行。dhclient eth0
手动堵塞 DNS 也/etc/resolv.conf
无济于事。
我设置了参数-net user
,但出现错误:
qemu-system-x86_64: -net user: network backend 'user' is not compiled into this binary
为了以防万一,我决定重建 QEMU(它最初是从源代码组装的,因为这是必要的)。以下是configure
选项:
../configure \
--enable-lto \
--enable-modules \
--enable-module-upgrades \
--enable-strip \
--enable-tcg-interpreter \
--prefix=/usr \
--enable-alsa \
--enable-attr \
--enable-auth-pam \
--enable-avx2 \
--enable-avx512bw \
--enable-avx512f \
--enable-bochs \
--enable-bpf \
--enable-brlapi \
--enable-bzip2 \
--enable-cap-ng \
--enable-capstone \
--enable-cloop \
--enable-colo-proxy \
--enable-crypto-afalg \
--enable-curl \
--enable-curses \
--enable-dbus-display \
--enable-dmg \
--enable-docs \
--enable-fuse \
--enable-fuse-lseek \
--enable-gcrypt \
--enable-gettext \
--enable-gio \
--enable-glusterfs \
--enable-gnutls \
--enable-gtk \
--enable-gtk-clipboard \
--enable-guest-agent \
--enable-hv-balloon \
--enable-iconv \
--enable-jack \
--enable-keyring \
--enable-kvm \
--enable-l2tpv3 \
--enable-libdaxctl \
--enable-libdw \
--enable-libiscsi \
--enable-libkeyutils \
--enable-libnfs \
--enable-libssh \
--enable-libudev \
--enable-libusb \
--enable-libvduse \
--enable-linux-aio \
--enable-linux-io-uring \
--enable-live-block-migration \
--enable-lzo \
--enable-malloc-trim \
--enable-membarrier \
--enable-multiprocess \
--enable-numa \
--enable-opengl \
--enable-oss \
--enable-pa \
--enable-parallels \
--enable-pipewire \
--enable-pixman \
--enable-plugins \
--enable-png \
--enable-pvrdma \
--enable-qcow1 \
--enable-qed \
--enable-rdma \
--enable-replication \
--enable-sdl \
--enable-sdl-image \
--enable-seccomp \
--enable-selinux \
--enable-slirp \
--enable-slirp-smbd \
--enable-smartcard \
--enable-snappy \
--enable-sndio \
--enable-sparse \
--enable-spice \
--enable-spice-protocol \
--enable-stack-protector \
--enable-tcg \
--enable-tools \
--enable-tpm \
--enable-usb-redir \
--enable-vde \
--enable-vdi \
--enable-vduse-blk-export \
--enable-vhdx \
--enable-vhost-crypto \
--enable-vhost-kernel \
--enable-vhost-net \
--enable-vhost-user \
--enable-vhost-user-blk-server \
--enable-vhost-vdpa \
--enable-virglrenderer \
--enable-virtfs \
--enable-virtfs-proxy-helper \
--enable-vmdk \
--enable-vnc \
--enable-vnc-jpeg \
--enable-vnc-sasl \
--enable-vpc \
--enable-vte \
--enable-vvfat \
--enable-zstd \
--enable-system \
--enable-user \
--enable-linux-user \
--enable-pie \
--enable-xkbcommon \
--enable-rbd \
--extra-cflags='-march=native' \
--extra-cxxflags='-march=native' \
--extra-objcflags='-march=native'
没有帮助。我从源代码下载并构建 libslirp,然后用它重建 QEMU,但结果是相同的 - 网络无法工作。即使该选项也不起作用-net nic
:
~/Virtual/Win10 $ qemu-system-x86_64 -accel kvm -k en-gb -smp cores=1 -m 1400M -drive if=virtio,file=disk_c.img -cpu qemu64 -M pc,vmport=off,usb=false,pic=off -drive if=virtio,file=disk_d.img -net nic,model=rtl8139
所以我该怎么做?到底是什么问题,slirp、qemu 还是其他什么问题?如何解决问题,或者至少在哪里找到问题的根源。也许缺少某些东西(反之亦然,有东西干扰)......
在主机上,网络工作没有问题。
ToaD
Asked:
2024-02-21 03:20:03 +0800 CST
Space Researcher
Asked:
2024-02-17 16:30:14 +0800 CST
我不明白哪个级别在哪里运行(电线、路由器、交换机、操作系统)。根据我的理解,事情是这样发生的:
- 应用层是应用软件,在用户之下它有一个通过网络进行交互的接口,该软件不需要知道有关网络的任何其他信息 - 例如http。有一份合同——我们走吧。它在操作系统中
- 表示级别 - 例如,我们标记数据必须解释为 json,并以 json 格式从应用程序级别发送。这仍然在用户下的操作系统中
- 会话层已经是核心,它有一个接口,可以向下面的级别发出有关会话打开的信号,并接收会话打开的响应,并将 http 请求和 json 发送到传输层
- 传输层也在操作系统内核中,具有来自以下级别的接口,可以接收有关吞吐量、延迟的信息,并使用这些信息,根据某些(什么?)协议将请求及其主体切成块,添加您自己的标题等
- 如果块太大,网络层会将块切割成数据包(?为什么传输层不能生成正常的块?),但仍然将这些块(即使没有切割??)打包成数据包,并添加有关接收者的信息(IP地址? )。也就是说,该级别有一个与下面级别的接口,以便了解收件人所在的子网,找出其默认网关 ip(是路由器吗?)以及收件人在该子网中的 ip。
- 通道将数据包切割成帧,显然是为了添加更多标头(问题是哪些标头),并将帧扔到物理级别并确保它们在物理级别正确转换为位 - (操作系统?)
- 物理层 - (网卡??) - 将位转换为电信号,并通过在网络层指定的 IP 子网发送它们,子网接收、解包并在内部搜索路由表(显然在路由器上??)根据所需的接收者和网络,接收卡以电信号的形式从路由器接收数据,并发生相反的过程。
请告诉我哪里错了,其他问题都标在括号中。可惜网上80%的资料太肤浅,我什么都不懂
由于某种原因,关于 RuSO 的类似问题并不受欢迎,而且原则上很少有人真正理解它