我在很多博客上看到,在linux上使用许多网络安全/嗅探工具的同时,使用此命令启用IP转发
echo 1 > /proc/sys/net/ipv4/ip_forward
Run Code Online (Sandbox Code Playgroud)
任何人都可以用外行的术语解释我,这个命令本质上是做什么的?它能把你的系统变成路由器吗?
谁能为我澄清网关分配?
添加网关0.0.0.0
和分配特定IP地址作为网关有什么区别?
我有eth0
,wlan0
根据ifconfig
,我可以ping google.com
。
我如何才能找出(对于普通用户,而不是root
)哪个接口处于活动状态,例如 ping(或其他什么,ping 不是强制性的)使用的接口是什么?
我使用的是 Ubuntu 11.04 或 Fedora 14
我有一个有两个接口的系统。两个接口都连接到互联网。其中之一设置为默认路由;这样做的副作用是,如果数据包进入非默认路由接口,则回复将通过默认路由接口发回。有没有办法使用 iptables(或其他东西)来跟踪连接并通过它来自的接口发回回复?
问题: 如何在启动程序的同时确保其网络访问是通过特定网络接口绑定的?
案例: 我想使用相同的 IP (192.168.1.1) 访问两台不同的机器,但可以通过两个不同的网络接口(eth1 和 eth2)访问。
例子:
net-bind -D eth1 -exec {Program 192.168.1.1}
net-bind -D eth2 -exec {Program 192.168.1.1}
Run Code Online (Sandbox Code Playgroud)
以上是我想要的近似值,灵感来自通过primusrun和optirun完成的硬件绑定。
挑战:正如在相关线程中所建议的,所使用的接口不是由程序选择的,而是由内核选择的(因此是上例中的预绑定语法)。
我找到了一些相关的解决方案,但并不令人满意。它们基于通过用户特定的网络黑名单绑定网络接口;即,以只能访问单个特定网络接口的用户身份运行该进程。
我正在使用openconnect
连接到 vpn。输入凭据后,我得到以下信息:
POST https://domain.name/...
Got CONNECT response: HTTP/1.1 200 OK
CSTP connected. DPD 30, Keepalive 30
Connected tun0 as xxx.xxx.xxx.xxx, using SSL
Established DTLS connection
Run Code Online (Sandbox Code Playgroud)
运行ifconfig
显示我有一个tun0
具有特定 IP 地址的新网络接口。
问题:如何ssh
只使用网络接口,tun0
以便我可以访问该专用网络上的计算机?
编辑:
我的网络配置 ( route -n
) 似乎是这样的:
172.16.194.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
172.16.25.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth0
0.0.0.0 192.168.0.1 …
Run Code Online (Sandbox Code Playgroud) 当我通过 Internet 建立到我们公司 OpenVPN 服务器的 OpenVPN 客户端连接时,它会推送几个静态路由。不幸的是,这些路由在我的本地网络环境中破坏了一些连接,因为它们与我自己的路由相冲突。我如何拒绝这些路线?
我的问题与仅允许某些接口上的某些出站流量基本相同。
我有两个接口eth1
(10.0.0.2) 和wlan0
(192.168.0.2)。我的默认路由是eth1
. 假设我希望所有 https 流量都通过wlan0
。现在,如果我使用另一个问题中建议的解决方案,https 流量将通过wlan0
,但源地址仍为eth1
(10.0.0.2)。由于此地址对于wlan0
网关不可路由,因此永远不会返回答案。简单的方法是在应用程序中正确设置 bind-addr,但在这种情况下它不适用。
我想我需要重写 src-addr:
# first mark it so that iproute can route it through wlan0
iptables -A OUTPUT -t mangle -o eth1 -p tcp --dport 443 -j MARK --set-mark 1
# now rewrite the src-addr
iptables -A POSTROUTING -t nat -o wlan0 -p tcp --dport 443 -j SNAT --to 192.168.0.2
Run Code Online (Sandbox Code Playgroud)
现在 tcpdump 看到传出的数据包很好,传入的数据包到达 192.168.0.2,但是它们可能永远不会在应用程序中结束,因为我所看到的是应用程序正在重新发送 SYN 数据包,尽管 SYN-已经收到 …
有没有可以在 Linux 机器上调试路由表的工具?
我的意思是我可以通过输入一个 ip 地址来使用它,它会考虑现有的路由表并从表中输出匹配项,所以我可以知道数据包会去哪里?
我希望我的 OpenVPN 服务器将路由推送到具有不同默认网关的客户端。
具体来说,我的 OpenVPN 服务器的内部 IP 地址为10.0.0.1
,我希望它推送10.10.10.1/24
使用网关的路由10.0.0.2
。
是否可以通过在服务器配置文件中指定推送路由来做到这一点?