ubnutu不能上网的简单解决办法

本文记录了一次Ubuntu系统安装后的网络配置问题,详细介绍了从遇到无法上网的情况到通过修改DNS设置解决问题的过程。文中提供了具体的步骤,包括如何使用谷歌的DNS地址进行网络连接的修复。

近来开始学linux,又很好奇各种linux系统,装了centos,一切都挺顺利 ,本人喜欢鼓捣各种系统,今天又装了ubnutu,装好啦,试了一下,可以上网,可是后来重启后想更新系统发现更新不了,想下载软件包来用命令更新,发现连不了网,ping自己的路由可以拼通,局域网的也可以ping通,ping百度和网易,新浪都拼不通,后来在百试上有人说可能是dns的问题,后来用本地的windows系统的cmd然后在dos环境下ping百度可以ping通,得到百度的IP地址,再在ubnutu上ping,发现竟然可以ping通,就改用nat连接,再试也一样,后来在浏览器上直接办理主IP,竟然可以访问百度,想来想去应该就是DNS的问题,就再查找原因,然后在Ubnutu的右上角找到联网图标,点开后再编辑网格连接,在IPV4上附加DNS服务器”中填上 谷歌的DNS的IP 8.8.8.8,然后保存,断开网络再重新连接,就可以上网啦*

### 如何阻止特定应用程序访问互联 为了防止某些应用在 Ubuntu 中访问络,可以采用多种方法来实现这一目标。一种常见的方式是通过 `iptables` 或者更现代的防火墙工具如 `nftables` 来设置规则。 #### 使用 iptables 设置规则 可以通过创建基于进程 ID (PID) 的规则来限制程序联的能力: ```bash sudo iptables -A OUTPUT -m owner --pid-owner $(pgrep 应用名称) -j DROP ``` 这条命令会阻断指定的应用尝试发出的数据包[^1]。 对于那些启动后可能拥有不同 PID 的服务来说,这种方法不是最理想的解决方案。因此另一种更为可靠的办法是利用 cgroup(控制组)。这涉及到将要被隔离的应用放入一个新的 cgroups 中并对其施加流量过滤器。 #### 利用 AppArmor 实现强制访问控制 AppArmor 是 Linux 下的一个安全模块,它允许管理员定义针对单个程序的安全策略。如果希望某个具体的应用无法连接到外部,则可以在该应用对应的 profile 文件中加入如下配置项: ```plaintext deny network inet, ``` 此行表示拒绝所有类型的 Internet 连接请求。完成编辑之后记得重启受影响的服务以便使更改生效[^2]。 #### 通过 nftables 创建持久化规则 相较于传统的 iptables,nftables 提供了一个更加简洁高效的接口来进行包处理操作。下面是一个简单的例子展示怎样构建一条仅适用于某单一二进制文件执行时产生的 TCP 流量拦截指令: ```bash table ip filter { chain output { type filter hook output priority 0; policy accept; ct state new tcp dport {80, 443} meta l4proto tcp oifname "lo" accept ct state established,related counter packets 0 bytes 0 accept # Block all other outgoing connections made by a specific application. meta lr_pid "/path/to/application" drop } } ``` 上述脚本中的 `/path/to/application` 需替换为目标可执行文件的实际路径;而 `oifname "lo"` 表达式用来放行回环设备上的通信活动以确保本地 socket 正常工作[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值