容器网络 - 与外网访问 外网如何访问nas( 二 )
1. 需要设定为 Passive被动模式:端口范围可为设为 10000-10050
2. 指定的IP要设为外IP:以解决“安全验证”问题
这个外IP就是将要被访问的FTP://外IP
3. 用户增加anonymous,密码不设 , 这是匿名方式;
4. 共享文件夹设成你的一个被访问目录;
5. 其它21号服务端口等缺省参数不需改动 。
四、程序说明:
一、FileZilla server.exe 这是后台服务程序 , 运行后启动服务就可;
二、FileZilaa Server Interface.exe 这是界面管理程序 , 让管理员设定参数的;
Q4:容器网络 - 与外网访问
在 容器间通信 一节中 , 由于两个 Network Namespace 与主机之间隔离 , 是无法访问外网的 , 那么如何访问外网呢 。可以想到这样一种网络方案 , 因为 veth1 和 veth2 是连通的 , 所以 veth1 的数据是可以传递到 veth2 的 , 那么此时如果 veth2 的数据能传递给 eth0 , 借助 eth0 的外网访问能力 , 就能实现 veth1 的外网访问 。
省略容器创建和链接命名空间 , 分别为容器中的网卡 veth1 和主机网卡 veth2 配置ip
可以看到这两块网卡能
可以看到 , 当我们直接 ping 时 , 不会有 ICMP 报文发出 , 提示网络不可达 。这是因为 10.130.0.34和veth1不在同一网段 , 在没有配置网关的情况下 , 也不知道应该如何发出去 。
正常情况下 , 为了让 veth1 ping 通 eth0 , 可以给 veth1 配置默认的路由规则 , 告诉它如果找不到合适的规则 , 就把数据包从 veth1 扔给 veth2 。
配置好路由规则后 , 就能够 ping 通 10.130.0.34 了 。
ping 通10.130.0.34 并不代表数据到达了 eth0 网卡 , 因为 linux 内部网络交换和外部不一样 。梳理一下数据流程 。
至此 , 整个 ICMP 通信完成 。自始至终网卡 eth0 未参与 。
上一部配置好路由 , 我们测试了 veth1 能够和主机任意一个 IP 地址通信 。本节将借助 eth0访问到网关 。
其中的关键点在于 , 如何把 veth2 的数据包传递给 eth0
先尝试 ping 一下网关 , 然后抓取 veth2 的数据包 , 发现只有请求报文 , 没有响应报文 。
再抓取物理网卡(我这里是物理网卡名称是 enp0s3f0 , 也就是图式的 eth0 , 统一用 eth0 代表物理网卡)上的数据包 。发现没有任何数据包 。
为了让数据包从虚拟网卡 veht2 发到 eth0 , 需要用到ip_forward , 也就是启用内核的数据包转发功能 。数据转发功能能够让内核接收到不属于本机的数据包时 , 根据 数据包的目的 ip 地址将数据包通过合适的网卡转发出去 。
sysctl -w net.ipv4.ip_forward=1
ping 网关测试 , 可以连通 , 抓取物理网卡信息 , 同时存在请求和响应报文 。
既然 ping 通了网关 , 就意味着数据包已经转发出去了 , 那么可以访问局域网其他主机或者公网吗 。
首先测试一下局域网访问 , ping 不通 , 我们在局域网的 179 这台主机上抓包 。可以看到 179 收到了 ICMP 请求包 , 也将应答包发给了网关 。
再抓取一下本机网卡 , 可以看见本机确实没有收到 ICMP 应答包 。
这个问题就比较有意思 , 前一节 , 网关收到了 ICMP 请求 , 能够封装 ICMP 应答包回复给主机 , 而如果网关收到其他主机的 ICMP 回程报文 , 则由于网关不能正确传递 。
其实不传递才是正常的 , 当网关收到 179 发来的 ICMP 应答报文时 , 需要投递给 192.168.0.101 , 但是网关上没有这样一个匹配的规则 , 只能走默认路由或者丢弃 。
当我们 ping 网关时 , 猜测应答有一些特殊操作 , 能够正确将应答包原路返回 这个问题我暂时也不清楚。
为了让数据包能正确的被路由 , 需要使用到 SNAT 技术 。
SNAT 功能比较简单 , 就是将源地址在 192.168.0.0/24 这个网段的数据包 , 将其源地址转换以后 , 发送出去 , 用 iptables 规则就可以实现 。
root@merore ~$ iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
此时再 ping 一下其他主机和公网 。均能正常访问 。
抓取本机网卡数据包 , 可以看到发出去的数据包源ip地址都被替换为了实际的物理网卡地址 10.130.0.34
推荐阅读
- |汤姆·克鲁斯10年不见苏瑞,只每月给275万,与养子女却亲密
- 沈月|邱淑贞女儿现身晚宴,与外籍男星合影,秀香肩事业线颜值不输妈妈
- 王一博|曝顶流男星曾让女粉怀孕,还与女网红在卫生间乱搞,现假装很高冷
- 黄晓明|叶珂疑晒求婚现场!反光体中人影出卖了她,被曝与黄晓明领证再婚
- 熊黛林|熊黛林带女儿们游玩,姐姐颜值惊艳好漂亮,与妹妹越发不像双胞胎
- 缅甸|确定没少个0吗?校招985与211计算机本科毕业生只出2K,情以何堪
- 深入浅出RPC服务 | 不同层的网络协议
- C语言的一级指针
- Android系统服务DropBoxManagerService详解与实践应用
- 赵又廷|“全民情敌”与女神的瓜!