linux tun-在ubuntu上用tun可以ping通但不能浏览网页

问题描述

在ubuntu上用tun可以ping通但不能浏览网页
各位大神见教:
在ubuntu上打开/dev/net/tun创建了一个tun设备(tun0),具体代码都是参考网上的例子,物理设备用的是一个3g数据卡,数据卡注册上网络后网络会分配ip和dns并返回给用户,数据卡会在linux中生成ttyUSB0作为数据通道,tun0就通过该通道与数据卡进行交互,这是背景,具体问题是将网络分配的ip作为linux的默认网关,同时将eth0 down掉了,即现在linux中只有tun0一个网卡,这个用ifconfig及route -n都能看到相关信息,但ping百度或其他外网的ip地址都是可以ping通的,ping域名就不行,用浏览器上网也没有反应,用tcpdump监听tun0可以看到浏览器上网(用的ip地址或域名)没有数据交互,感觉像是系统并不知道有tun0这个网卡存在似的,但为什么ping ip又能ping通呢?

时间: 2025-01-21 00:05:59

linux tun-在ubuntu上用tun可以ping通但不能浏览网页的相关文章

Linux 有问必答:如何在 Ubuntu 上配置网桥

Linux 有问必答:如何在 Ubuntu 上配置网桥 Question: 我需要在我的Ubuntu主机上建立一个Linux网桥,共享一个网卡给其他一些虚拟主机或在主机上创建的容器.我目前正在Ubuntu上使用网络管理器(Network Manager),所以最好>能使用网络管理器来配置一个网桥.我该怎么做? 网桥是一个硬件装备,用来将两个或多个数据链路层(OSI七层模型中第二层)互联,以使得不同网段上的网络设备可以互相访问.当你想要互联一个主机里的多个虚拟机器或者以太接口时,就需要在Linux

Linux有问必答:如何在Debian或Ubuntu上安装完整的内核源码

Linux有问必答:如何在Debian或Ubuntu上安装完整的内核源码 问题:我需要为我的Debian或Ubuntu下载并安装完整树结构的内核源码以供编译一个定制的内核.那么在Debian或Ubuntu上有什么可行的方法来下载完整的内核源码呢? 在给你的Linux安装完整内核源码之前,先问问自己是否真的需要这样做.如果你仅仅是尝试去编译一个内核模块或是为内核定制驱动,你并不需要完整的内核源码树.你只需要安装一些与内核对应的头文件,这样就足够了. 只有在你需要生成一个定制的内核,而且内核源码中的

[Linux]阿里云免费试用体验(在阿里云的ubuntu上部署个人服务)

作为一个IT界的人,一般都希望有一个独立的博客,或者一部独立的机器.所以我一直在找机会,拥有一台自己可以独立控制的机器,自己想干嘛干嘛.当然这在虚拟机或者自己的PC上面也可以实现,但是这跟一台一直开着挂在网上的服务器体验是完全不一样的.   申请 一直很想试试阿里云.之前有一次申请免费试用,不知道是不是当时网站存在bug,结果一直卡在手机验证的环节.后来又申请了一次,终于可以了. 五一前又申请了一次免费试用,终于成功了: 之后等审核,审核的时候阿里云会打电话过来进行简单的确认,问你用来干嘛,最后

在Ubuntu上为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序

  在Android硬件抽象层(HAL)概要介绍和学习计划一文中,我们简要介绍了在Android系统为为硬件编写驱动程序的方法.简单来说,硬件驱动程序一方面分布在Linux内核中,另一方面分布在用户空间的硬件抽象层中.接着,在Ubuntu上为Android系统编写Linux内核驱动程序一文中举例子说明了如何在Linux内核编写驱动程序.在这一篇文章中,我们将继续介绍Android系统硬件驱动程序的另一方面实现,即如何在硬件抽象层中增加硬件模块来和内核驱动程序交互.在这篇文章中,我们还将学习到如何

Linux 有问必答:如何删除 Ubuntu 上不再使用的旧内核

提问:过去我已经在我的Ubuntu上升级了几次内核.现在我想要删除这些旧的内核镜像来节省我的磁盘空间.如何用最简单的方法删除Ubuntu上先前版本的内核? 在Ubuntu上,有几个方法来升级内核.在Ubuntu桌面中,软件更新允许你每天检查并更新到最新的内核上.在Ubuntu服务器上,最为重要的安全更新项目之一就是 unattended-upgrades 软件包会自动更新内核.然而,你也可以手动用apt-get或者aptitude命令来更新. 随着时间的流逝,持续的内核更新会在系统中积聚大量的不

Linux有问必答——如何查找并移除Ubuntu上陈旧的PPA仓库

Linux有问必答--如何查找并移除Ubuntu上陈旧的PPA仓库 问题:我试着通过运行apt-get update命令来再次同步包索引文件,但是却出现了"404 无法找到"的错误,看起来似乎是我不能从先前添加的第三方PPA仓库中获取最新的索引.我怎样才能清除这些破损而且陈旧的PPA仓库呢? Err http://ppa.launchpad.net trusty/main amd64 Packages 404 Not Found Err http://ppa.launchpad.net

在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序

   在前一篇文章中,我们介绍了如何在Ubuntu上为Android系统编写Linux内核驱动程序.在这个名为hello的Linux内核驱动程序中,创建三个不同的文件节点来供用户空间访问,分别是传统的设备文件/dev/hello.proc系统文件/proc/hello和devfs系统属性文件/sys/class/hello/hello/val.进一步,还通过cat命令来直接访问/proc/hello和/sys/class/hello/hello/val文件来,以验证驱动程序的正确性.在这一篇文章

如何在Ubuntu上用Yocto创建你自己的嵌入式Linux发行版

本文主要聚焦在如何使用 Yocto 在 Ubuntu 上创建一个最小化的 Linux 发行版.Yocto 项目在嵌入式 Linux 的世界非常著名,这是因为它用起来非常灵活.方便.Yocto 的目标是为嵌入式软硬件开发商创建自己的 Linux 发行版.本文我们将会创建一个可以运行在 QEMU 上的最小化的 Linux,并且在 QEMU 上实际运行. 开发机的基本条件 最少 4-6 GB 内存 最新版的 Ubuntu 系统(本文使用了 16.04 LTS) 磁盘剩余空间至少 60-80 GB 在创

在Ubuntu上为Android系统编写Linux内核驱动程序

在智能手机时代,每个品牌的手机都有自己的个性特点.正是依靠这种与众不同的个性来吸引用户,营造品牌凝聚力和用户忠城度,典型的代表非iphone莫属了.据统计,截止2011年5月,AppStore的应用软件数量达381062个,位居第一,而Android Market的应用软件数量达294738,紧随AppStore后面,并有望在8月份越过AppStore.随着Android系统逐步扩大市场占有率,终端设备的多样性亟需更多的移动开发人员的参与.据业内统计,Android研发人才缺口至少30万.目前,