查看Openwrt闪存使用状况

2017-4-26 学长 网络

很简单的一条指令

DF

评论(0) 浏览(3666)

openwrt 安装出错

2017-4-26 学长 网络

出现

satisfy_dependencies_for: Cannot satisfy the following dependencies

版本验证出错


安装命令加上

--force-depends 就好了

评论(0) 浏览(3131)

VM中装Openwrt

2017-4-26 学长 网络

首先下载安装VM workstiaon版本


先来说一下VM的自动启动问题,网上给出了答案,用工具instsrv.exe和srvany.exe,这样创建服务就可以在管理员不登陆的情况下运行服务。。。但是这样并没办法让跑起来的虚拟机正常联网。。。

解决办法很简单。。。

把虚拟机变成共享虚拟机。。。然后在共享的虚拟机上右键点 管理自动启动的虚拟机 ,把你想自动启动的虚拟机打勾保存就好了。


下载

https://downloads.openwrt.org/

官网下载,因为虚拟机是运行在x86环境下的,所以选择最新的系统,并选择x86

然后是generic ,你可以选择x64,但是就目前openwrt的硬件需求。。。完全用不到x64硬件。。。

带combined结尾的两个文件就是openwrt的镜像文件。一种是ext4格式一种是squashfs

这里推荐下载ext4的。。。因为最终结果一样的。。。

如果你下载的是snapshots版本恭喜你里面没有luci到时候要下载。。。其他没什么太大区别。。。


新建虚拟机

保证硬盘是IDE就行,容量放0.1G就够用,CPU 放一个内存给128Mb,网络给个NAT

其他不用的虚拟硬件可以删掉了。

开始把openwrt写入虚拟硬盘

有两种办法,

1,第一步,用DiskGenius 打开官网下载的ext4.img文件,这种办法写入squashfs.img

    DiskGenius -- 硬盘 -- 打开虚拟硬盘文件

    第二步,然后打开刚才建立的虚拟机的虚拟硬盘文件

    第三步,工具--扇区复制, 把官网的ext4.img中的扇区复制到虚拟机的虚拟硬盘文件中。

    完成,然后退出DiskGenius就可以开启Openwrt了

2,通过windows自带的硬盘管理软件新建一个vhd并挂载,通过physdiskwrite把img写入该虚拟硬盘,然后再转回VM用的vmdk文件挂到相应的虚拟机下即可。。。


网络设置

    启动虚拟机

    然后随便点个回车就会进入ssh的欢迎界面

    查看 VM中--编辑--虚拟网络编辑器  NAT模式的NAT设置

    编辑网络配置

    vi /etc/config/network

输入 i 编辑

    在option ipaddr ''的单引号中放入合适的IP地址


    理论上VM的虚拟网络把虚拟网络中的第一个IP地址分配给主机,第二个地址是网关,随便选取从第三个地址到第244个地址中的一个就行,最好放在128地址之前,因为虚拟网络默认把128和之后的地址DHCP分配出去,理论上你没有太多的虚拟机不需要考虑这个问题。


    option netmask '255.255.255.0'跟虚拟网络中的设置一样就可以了
    option gateway '' 写入虚拟网络中网关的地址
    option dns '' 这个写入你所在网络运营商提供的DNS

ESC,输入大写的两个Z保存并退出,如果你改变了其他不应该改变的配置输入 :q! 退出不保存然后重复编辑指令,所有输入的内容都是英文的,请勿用中文输入。。。


重启路由,然后就可以通过opkg指令安装网上的软件了


opkg安装软件

    前面说了,snapshots版本是没有luci 的所以要通过上网的方式安装当然你把硬盘映射出来向root文件夹中放ipk通过opkg来安装也可以的

    不过这得需要ext2fsd,直接上网安装就需要啦

    首先测试网络通断,ping baidu.com

    按ctrl C中断指令,跟windows不一样openwrt会一直ping下去 当然你也可以通过 -c 限定ping的次数

    然后编辑vi /etc/opkg.conf

    option check_signature 1 前面加上#备注掉,这样opkg update起来会快点

    或者在最下面加入你在网上找到分feed

    然后就是第一步输入 

    opkg update

    第二步

    opkg install luci

    装完后你就可以输入刚才你分配给路由的地址通过web方式登陆路由管理后台了

    然后设置登陆密码,没有密码没法开启SSH。。。

    opkg update 意外中断会出错,直接删除那个文件就好了 rm 什么来的


一切设置好后就可以通过SSH 登陆路由了    


*hyper-V的虚拟网卡openwrt并不完全支持。。。所以建议不要使用hyper-V虚拟openwrt。。。目前15.0.5之前版本还是能找到hyper-V网卡的驱动的

评论(0) 浏览(5491)

openwrt 建造vpn 隧道通过ddns

2017-4-18 学长 网络

上一篇讲过怎么在newifi中建立vpn在没有固定IP的拨号环境下。

后来实际运行起来效果不是很满意。原因归根到底是路由需要插一个小U盘。。。这也不是什么大问题,但是我的U盘插上去太久总是变成只读模式,或者在偶尔的断电重启后不得不插拔U盘才能让程序继续工作。

不出现断电的情况下系统是稳定但是linux或者newifi自身U盘的保护算法问题使得每次重启后就出现种种的问题。。。我最终决定把所有要用的东西都写到路由里而不是把程序安装在U盘上。。。

默认的安装包都是安装到U盘中的.iso镜像中,这是个好的方法在不增加生产硬件前提下解决了路由的闪存太小。。。但是我实际用起来linux糟糕的文件管理。。。或许因为U盘格式不是ext2。。。


言归正传

这次只需要两个核心软件

pptpd和ddns-scripts

但是这两个软件都没法直接从应用中心找到,即使找到也无法安装到路由自身闪存中


首先还是要插U盘的,开启SSH, 官方应用中有,如果没有了这里是链接 http://pan.baidu.com/s/1boxfy4f

后发现Newifi Mini 开启SSH 不需要安装这些,直接在浏览器中输入http://192.168.99.1/newifi/ifiwen_hss.html  看到返回success  说明开启SSH


然后要做的就是开启openwrt 中的opkg 功能

ssh登陆路由 输入root和密码

直接输入下面的代码 然后加回车,更改opkg.conf设置


mv /etc/opkg.conf /etc/opkg.conf.orig
cat > /etc/opkg.conf <<EOF
dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay
src/gz barrier_breaker_base http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/base
#src/gz barrier_breaker_extra http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/extra
src/gz barrier_breaker_luci http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/luci
src/gz barrier_breaker_management http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/management
src/gz barrier_breaker_oldpackages http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/oldpackages
src/gz barrier_breaker_packages http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/packages
src/gz barrier_breaker_routing http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/routing
src/gz barrier_breaker_telephony http://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/packages/telephony
arch all 1
arch noarch 1
arch ralink 10 
arch ramips_24kec 20
EOF
然后更新opkg列表



opkg update



开始安装pptpd



opkg install pptpd



然后安装ddns-scripts
opkg install ddns-scripts

opkg info '关键词*'可以搜索想要的软件



设置pptpd
先去 vi /etc/config/pptpd
键入i 开始编辑
开启pptpd
option 'enabled' '1' 这一项改成1表示开启服务。
option 'localip' ''  最后的单引号中的地址改成路由的内网地址,当然你有公网地址就直接用啦。。。
option 'remoteip' '' 地址段应该跟路由的地址在同一段上。
config 'login' 这一项跟newifi的不同,它支持多个用户,需要多个用户按照这样的格式写

config 'login'
        option 'username' '用户一'
        option 'password' '用户一密码'

config 'login'
        option 'username' '用户二'
        option 'password' '用户二密码'
修改完成后修改VPN的dns和mtu参数
vi /etc/ppp/options.pptpd
mtu和mru 我设置的是1200,根据具体网络环境决定,一般跨国vpn在1400以下这样才可以
chap-secrets虽然是记录用户信息的文件但是这里的用户信息是根据config下的信息产生的,如果不同会被config中的信息覆盖掉
所有的设置别忘了esc 后输入大写的两个Z保存,或者你也可以下载安装openssh-sftp-server,直接通过SFTP修改更直观些。

  opkg -d ram install openssh-sftp-server
  mkdir -p /usr/libexec
  cp /tmp/usr/lib/sftp-server /usr/libexec/
SecureCRT套件中的SecureFX就有SFTP功能

设置防火墙记录
vi /etc/firewall.user
增加 
iptables -I FORWARD -i ppp+ -j ACCEPT
并且在 vi /etc/config/firewall
中添加 
config rule
 option name 'PPTPD'
 option src 'wan'
 option proto 'tcp'
 option dest_port '1723'
 option target 'ACCEPT'  
重启以下防火墙和pptpd服务。
/etc/init.d/pptpd restart
 
/etc/init.d/firewall restart
如果你设置出错请不要保存直接esc 到输入命令状态输入 :q! 不保存退出,vi没有鼠标界面光标只随着键盘方向键走。
下面开始设置DDNS
vi /usr/lib/ddns/dynamic_dns_updater.sh
文件找到 
#some constants
在103行
将下面一句中的
 
 retrieve_prog="/usr/bin/wget -O - ";
改成
if [ -z "$retrieve_prog" ]
then
 retrieve_prog="/usr/bin/wget -O - ";
fi 
然后修改配置文件
vi /etc/config/ddns 
上面一大段注释可以删掉了反正没人读。。。浪费容量。。。
并且可以注释掉这一段:
option service_name	"dyndns.org"
option domain		"mypersonaldomain.dyndns.org"
option username		"myusername"
option password		"mypassword" 
option use_https	"0" 
这一段是dyndns.org的登陆方式,相对于DNSPOD来说登陆方式账号和密码都是明文。。。
option enabled		"1" 打开ddns服务。。。 
在配置文件的最后加上dnspod配置
    option retrieve_prog '/usr/bin/curl -k -X POST https://dnsapi.cn/Record.Modify -d '
    option update_url 'login_token=[LOGIN_TOKEN]&format=json&domain_id=[DOMAIN_ID]&record_id=[RECORD_ID]&sub_domain=[DOMAIN]&value=[IP]&record_type=[RECORD_TYPE]&record_line=%e9%bb%98%e8%ae%a4'
    option login_token 'API登陆用token'
    option domain_id '域名ID'
    option record_id '域名记录ID'
    option domain '子域名'
    option record_type '解析类型'
登陆用token在dnspod管理控制台--用户中心--安全设置--API Token--查看里申请,务必妥善保管。具体填写到设置文件的格式是 ID,API 本文中所有需要修改保存的符号都是英文符号。
域名ID 和 域名记录ID 具体获取方法在这里 https://support.dnspod.cn/Kb/showarticle/tsid/19
如果你觉得麻烦又不绿色,https://support.dnspod.cn/Support/api 中官方客户端是绿色的,可以查看这个两个ID,但是不能复制。。。
子域名应与域名记录ID对应,解析类型不出意外是 A。。。目前没见过那个运营商给AAAA IPv6地址的。。。
输入
/usr/lib/ddns/dynamic_dns_updater.sh myddns 
测试上传
/etc/init.d/ddns restart
重启ddns服务,最好亲眼看到IP地址变更了再确认全部完成。
15.05以后版本ddns脚本自带支持post
配置文件中
update_url 部分改成
update_url '--request POST https://dnsapi.cn/Record.Modify --data login_token=[LOGIN_TOKEN]&format=json&domain_id=[DOMAIN_ID]&record_id=[RECORD_ID]&sub_domain=[DOMAIN]&value=[IP]&record_type=[RECORD_TYPE]&record_line=%e9%bb%98%e8%ae%a4 
如果像继续使用curl需要开启 USE_CURL=1
若想让curl支持post需要在
/usr/lib/ddns/dynamic_dns_function.sh
__PROG="/usr/bin/curl -RsS -o $DATFILE --stderr $ERRFILE"
后面加入
if [ $use_post -eq 1 ]; then

export __POST="$__URL"

__PROG="$__PROG -d '${__POST#*\?}'"

__URL="${__POST%\?*}"

fi
并在配置文件/etc/config/ddns中声明
option use_post '1' 
并且开起ddns服务
/etc/init.d/ddns enable

 

评论(0) 浏览(4352)

Newifi VPN 搭建,动态IP远程网络连接及VPN建设

2017-4-13 学长 网络

为了买便宜的带5GHz WIFI 的路由我买了Newifi mini 图的就是便宜。

现在官方版本的功能越来越简陋了。。。

VPN 的构成 :

1. PPTP 官方应用页最后一个程序 https://pan.baidu.com/s/1mhddrs8 实际上就是openwrt上的PPTPD

2. SSH 官方应用中有。。。需要的原因: 特么的官方给的PPTPD 没设置DNS VPN 能拨上但是没法访问网页。。。 http://pan.baidu.com/s/1boxfy4f

3.Dnspod动态解析 这路由你直接接固定IP不是你逗我就是我逗你 Dnspod比花生壳好用,花生壳实际上是花生棒,特么每次重启SN 码就变。。。总不能每次都去打开路由页面去查看吧 https://pan.baidu.com/s/1eRCJEiY


为了降低 无人值守时路由的没反应的可能以下两个应用选装

4. 内存优化 https://pan.baidu.com/s/1bAR3Bo

5. 定时重启 https://pan.baidu.com/s/1qXpr9W4


第一步。。。插U盘。。。一定要插紧。。。查不紧U盘读不出来。。。U盘大小无所谓。。。我用的是学校开学欢迎新生的2G黑胶小U盘加上4*2cm 的纸抵住。。。


PPTP装起来很简单,装完就能用了,但是就像我说的,特么官网的没在默认设置里设置DNS。。。 装完确认打开功能,账号密码改成你需要的


SSH 也顺带装了并且也打开功能,SSH 需要客户端Putty就可以了,你有更好的当我没说。


Dnspod, 装完设置,账号密码,或者token(出于安全还是token好些),去 Dnspod控制台--用户中心--安全设置--API Token 里生成 token,在路由种 token的填写格式是“ID,token”。

测试成功后用自己放在DNSPOD 解析的的随便一个A记录。意思就是你首先得有一个一级域名。。。不然还是花生棒吧

这个A记录的IP可以随便填,因为这个应用会把动态分配给你的IP地址更新到你指定的域名下。路由里填写相关的子域名和根域名,先打开启用,然后打开开关。


你可以去 canyouseeme.org 或者任意一个可以测试端口的网站看是否开启1723端口,如果你newifi上一层还有一个拨号的路由,一般都是运营商送的,看看有没有 端口映射 之类的把1723 端口映射到newifi所在的地址。如果你发现连ping都ping不通。。。不是我的问题,你的运营商不给你开这个端口。。。


然后就是打开putty 设置该死的 DNS了。。。

地址是你路由的内网地址当然设置的电脑也应该在同一个内网中,选择ssh连接,不管问你啥你点确认就好了。。。

用户是root

密码是你路由的登陆密码,所以最好newifi的登陆密码改的跟wifi密码不一样。。。


位置是etc/ppp/options.pptpd

指令

cd / 

vi etc/ppp/options.pptpd

输入i开始编辑

在#ms-dns下加上

ms-dns 你路由的局域网地址

ms-dns 常用的DNS地址比如说google 8.8.8.8

最好把mtu 和mru值改低,我设置成1300

esc退到指令模式输入ZZ或者:wq!保存并退出


这时候既可以通过外网连接到该路由了。实际用途就是不需要固定IP 也可以远程维护或者接入某局域网用openwrt路由比企业级设备便宜的多


*pptpd支持多用户

具体用户信息可以通过radius或者直接修改ppp下的chap-secrets来实现

newifi 官方给的这个pptpd只能用一个用户每次启动都清除chap-secrets然后再读取配置文件种的用户名和密码但是配置文件只能写一个用户和密码。。。

更改方法:

cd /opt/app/ExtremePPTP/bin

vi pptpd.sh

按i 开始编辑

在setup_login() 前面加上

DE_USER=/etc/ppp/user 

这个地址用来写多用户名和地址

格式 username pptp-server password * 最后的*是ip限定,没有限定就是*,每行写一个用户信息

在echo "$username pptp-server $password *" > $CHAP_SECRETS后面添加一行

cat $DE_USER >> $CHAP_SECRETS

最后保存对文件的修改

把user文件种的信息合并到密码保存文件中user 文件在 /etc/ppp 下用vi user新建 保存(esc 然后capslock ZZ)

当然你也可以放在任何你想要的地址上


评论(0) 浏览(6898)

手机版 | RSS | FEED

苏ICP备16066175号