最新发布 Toggle Comment Threads | 键盘快捷键

  • 头像

    storm pm3:24 on 2020年9月15日 链接地址 | 回复  

    好用的开源面板,一键docker安装
    DockerHub 上 Wekan Docker 镜像名为:

    wekanteam/wekan
    Bash
    拉取 wekan 与 mongo db 镜像
    docker pull wekanteam/wekan
    docker pull mongo
    Bash
    克隆官方仓库
    git clone https://github.com/wekan/wekan
    Bash
    修改 docker-compose.yml 配置文件
    修改的目的是为了自定义访问端口,并将镜像源替换为 Docker Hub 镜像源,以解决镜像下载速度过慢的问题。

     
  • 头像

    storm pm8:56 on 2020年9月5日 链接地址 | 回复  

    博客的域名已经更换为https://nis.cm~

     
  • 头像

    storm am9:52 on 2020年9月3日 链接地址 | 回复  

    博客已经迁移到hyper-v 

    之前的博客是在一台独立服务器上和某存储共用的,为什么这次要迁移hyper-v呢~因为他最小,哈哈!对于多IP的独立服务器,以后的思路都是基于win的hyper-v架构来给各个网站安家了~这是我在某服务器(2X1TB RAID1)上数据超过700GB,而我只有用RSYNC痛苦搬家后得到的教训。毕竟虚拟机,只需要备份一个vm就好了~大家期待吧,以后陆续全部网站都会迁移到hyper-v

     
  • 头像

    storm am11:12 on 2020年8月24日 链接地址 | 回复  

    mastodon长毛象一些常用操作 

    备份和导出数据库(mastodon用户下):
    pg_dump -Fc mastodon_production -f backup.dump
    清理缓存的外站媒体文件
    RAILS_ENV=production /home/mastodon/live/bin/tootctl media remove –days=14
    清理未关联任何 toot 的“无主”媒体文件
    RAILS_ENV=production /home/mastodon/live/bin/tootctl media remove-orphans
    清理没有同本站任何用户产生关联的 toot 本身
    RAILS_ENV=production /home/mastodon/live/bin/tootctl statuses remove –days=14
    su – mastodon
    psql mastodon_production
    vacuum full

     
  • 头像

    storm pm9:19 on 2020年5月5日 链接地址 | 回复  

    使用IPIP TUNNEL连接两台服务器打通隧道 

    什么是IPIP隧道?
    与代理非常相似,IPIP隧道允许您将流量从BuyVPS(包括DDoS过滤)传递到另一个远程目的地。

    IPIP隧道允许全流量通过,而不仅仅是HTTP。通过IPIP隧道,您可以从任何类型的服务器(音频、音频、FTP、SSH、SCP、视频等)。

    您能使用IPIP隧道做什么?
    当您想使用我们的DDoS过滤服务来保护那些太大而无法与我们一起托管的服务(例如游戏服务器、Java应用程序、大型数据库驱动应用程序等)时,IPIP隧道非常方便。

    IPIP隧道也是OVH在其包含的内核中支持的唯一隧道方法。

    您的目标服务器没有根访问权,还是正在运行庞大的Windows部署?看看我们的替代方法重定向交通你的远程服务器。

    IPIP隧道如何从这里开始
    我们的如何在DDoS过滤的VPS IP和远程服务器之间设置IPIP隧道的教程从这里开始。

    按照下面的简单说明,您应该能够在20分钟内创建一个IPIP隧道。

    支持的操作系统
    可以使用Windows创建和转发IPIP隧道。如果您需要保护Windows服务器,请考虑购买KVM计划。

    在本文档中,我们将只讨论LinuxIPIP隧道配置。

    本指南将100%工作在我们的KVM和基于OpenVZ的计划上。

    先决条件
    安装在防DDoS VPS上的iptables(在大多数情况下已经包括在内)
    iucte 2(几乎每一个最近的Linux发行版都包括在内)
    支持IPIP的内核(Linux默认包括-ipip
    内核模块)
    需要转发到目的地的端口列表。
    隧道设置
    首先,我们需要建立我们的隧道。

    在DDoS防御 VPS上,请执行以下命令:

    echo ‘net.ipv4.ip_forward=1’ >> /etc/sysctl.conf
    sysctl -p
    iptunnel add ipip1 mode ipip local YOUR_FILTERED_IP remote DESTINATION_SERVER_IP ttl 255
    ip addr add 192.168.168.1/30 dev ipip1
    ip link set ipip1 up
    在远程服务器上,您希望保护运行以下内容:

    iptunnel add ipip1 mode ipip local DESTINATION_SERVER_IP remote YOUR_FILTERED_IP ttl 255
    ip addr add 192.168.168.2/30 dev ipip1
    ip link set ipip1 up
    请注意每个更改的第一行,以标记本地和远程使用哪个IP。第2行记录每个端点。在A/30中,两个IP是可用的:1和2。

    用平测试您的新IPIP隧道
    在您的DDoS防御 vps上,您现在应该能够进行ping操作了

    192.168.168.2
    为了完整,测试敲击

    192.168.168.1
    从你的目标服务器。

    设置源路由表
    源路由条目需要确保通过IPIP隧道输入的数据被发送回IPIP隧道。

    请在目的地服务器。

    echo ‘100 BUYVM’ >> /etc/iproute2/rt_tables
    ip rule add from 192.168.168.0/30 table BUYVM
    ip route add default via 192.168.168.1 table BUYVM
    请注意,echo命令只需要运行一次。该条目将保存到/etc/iucte 2/rt_table中,直到手动删除它为止。

    初始NAT条目在IPIP隧道上移动数据
    NAT用于通过我们的IPIP传输数据,并从另一端传送出去。

    虽然可以使用基于KVM的VPS和购买/29分配,但本指南没有涵盖这一点。

    在DDoS防御 VPS上运行以下命令:

    iptables -t nat -A POSTROUTING -s 192.168.168.0/30 -j SNAT –to-source YOUR_FILTERED_IP
    测试出站连接
    在目标服务器上,您可以运行以下命令之一,以查看隧道是否正确地通过通信量:

    curl http://www.cpanel.net/showip.cgi –interface 192.168.168.2
    wget http://www.cpanel.net/showip.cgi –bind-address=192.168.168.2 -q -O –
    IP转储应该是您的BuyVM过滤IP。

    通过IPIP隧道转发端口
    为了让事情变得简单,我们会继续前进全从我们过滤的IP到后端服务器的端口。如果愿意,可以将此规则更改为只转发某些端口。

    请调整,并在DDoS防御 VPS上运行以下命令:

    iptables -t nat -A PREROUTING -d YOUR_FILTERED_IP -j DNAT –to-destination 192.168.168.2
    iptables -A FORWARD -d 192.168.168.2 -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT
    第一个规则设置实际的端口转发,第二个规则确保连接得到NAT,并正确匹配。

    此时,您应该能够连接到YOUR_FILTERED_IP和目标端口与您的应用程序,并得到通过IPIP隧道,没有问题。

    重启后重新启动IPIP隧道
    你可以编辑/etc/rc.local使用您最喜欢的编辑器(甚至WinSCP),并将我们刚才运行的所有命令放在exit 0在底部。

    您的选择发行版(如debian)可能在/etc/network/interfaces使您的IPIP隧道在启动时启动,但这不在本指南的范围之内。

     
  • 头像

    storm pm9:18 on 2020年5月5日 链接地址 | 回复  

    使用iptables转发端口提速 

    假设转发服务器为 1.1.1.1,端口为 11111
    被转发的服务器为 2.2.2.2,端口为 22222

    均在转发的服务器上进行设置,被转发的不用管。
    如果个人使用,建议把所有端口的转发都加上,如 22-65535

    下面以iptables端口转发为例说明。

    1、查看网卡绑定的IP
    很多NAT服务器,网卡绑定的是内网IP。设置时就用内网IP。

    ip addr
    演示的这台VPS内网IP是 192.168.133.156

    2、设置转发

    wget -N –no-check-certificate https://zhujiwiki.com/wp-content/uploads/2020/01/iptables-pf.sh && chmod +x iptables-pf.sh
    bash iptables-pf.sh
    首次使用,必需选 1. 安装 iptables

    bash iptables-pf.sh
    选择 4. 添加 iptables 端口转发

    这样配置之后,使用 1.1.1.1:11111 ,实际流量大部分走的是 2.2.2.2:22222
    以后的使用、访问,均用 1.1.1.1 这个IP,加 端口。

     
  • 头像

    storm pm6:11 on 2019年7月21日 链接地址 | 回复  

    我们的长毛象(mastodon)平台也已经开通啦 

    NS中文嘟嘟,Mastodon中文社区,欢迎大家安家入驻哦!
    https://me.ns.ci

     
  • 头像

    storm pm8:49 on 2019年2月15日 链接地址 | 回复  

    使用LVM创建RAID 

    要求建立RAID逻辑卷册,您必须使用lvcreate指令的–type引数来指定RAID类型。一般当您透过lvcreate指令建立逻辑卷册时,–type会是隐藏的。比方说,当您指定引数时,指令会假定设置选项。当您指定引数时,指令则会假定设置选项。然而当您建立RAID逻辑卷册时,您必须明确指定您想要的磁区类型。可使用的RAID磁区类型详述于表格4.1

    下列指令将会在卷册群组my_vg中,建立一个大小为1G的双向RAID1阵列,名为my_lv。

    # lvcreate –type raid1 -m 1 -L 1G -n my_lv my_vg

    下列指令将会在my_vg卷册群组中建立一个RAID5阵列(三个条带加上一个隐藏同位磁碟),名为my_lv并且大小为1G。请注意,您必须如同为LVM条带卷册一般的指定条纹数量;正确的同位磁碟数量将会被自动加入。
    # lvcreate –type raid5 -i 3 -L 1G -n my_lv my_vg

    下列指令将会在my_vg卷册群组中,建立一个RAID6阵列(三个条带加上两个隐藏同位磁碟),名为my_lv并且大小为1G。
    # lvcreate –type raid6 -i 3 -L 1G -n my_lv my_vg

    在以LVM建立了RAID逻辑卷册后,您可启用,更改,移除,显示以及使用卷册,就像是任何其它LVM逻辑卷册一样。

     
  • 头像

    storm am7:57 on 2019年1月25日 链接地址 | 回复  

    在openwrt上配置TunnelBroker的BGP隧道并进行ipv6宣告 

    上一篇文章描述了如何在不借助ISP的情况下宣告自己的IPv6,此文章则是对上一篇文章的实现,这篇文章将使用openwrt和bird6进行,阅读此篇文章之前建议先读前面4篇文章。

    准备

    实现广播需要以下先决条件

    一个openwrt的路由器(这里使用newifi3 d2)
    一个ASN
    一个ipv6块
    这里要注意,路由器的内存应该是512M或以上,宣告ip后会有很多路由表存在于自己的路由器上,这会占用大量的内存(pop越多,对等越多则路由表越多,内存占用越大),所以要求路由器有大容量的内存来保存路由表,内存当然是越大越好,最低不应该低于256m(如果你只打算使用TunnelBroker的BGP隧道来宣告ipv6则256m够用),而闪存则建议32M或以上,推荐使用支持硬NAT的路由器,以便达到最佳传输速度。
    这里推荐一部分自己筛选出来的其它几个:edgerouter-x(内存闪存各256m,cpu为mtk)edgerouter-lite(内存512m闪存未知,cpu为:broadcom)wrt1900ac(256m内存128m闪存,cpu为:marvell)

    安装必要组件

    所有用到的组件官方仓库全部提供,所以只需要使用opkg安装即可。

    opkg update
    opkg install bird6 birdc6 6in4 luci-proto-ipv6

    也可以考虑安装luci-app-bird6和bird6-uci进行配置和管理,但是我感觉luci很难用,所以没有安装它。

    配置隧道

    TunnelBrocker的隧道详情内就有配置示例,可以直接使用

    uci set network.henet=interface
    uci set network.henet.proto=6in4
    uci set network.henet.peeraddr=你的公網ip
    uci set network.henet.ip6addr=’隧道的客戶端ipv6′
    uci set network.henet.ip6prefix=’/64′
    uci set network.henet.tunnelid=你的隧道id
    uci set network.henet.username=你的tunnerbroker的用戶名
    uci set network.henet.password=’你的tunnerbroker的密碼’
    uci commit network

    uci set firewall.@zone[1].network=’wan henet’
    uci commit firewall

    /etc/init.d/network restart
    /etc/init.d/firewall reload
    然后在网络 – >接口,应该可以看到一个HENET的接口。

    配置bird6

    关于隧道的配置上一篇文章内已经有说明,这里只配置bird6,文件位置在/etc/bird6.conf

    log syslog all;
    router id 你的公網ip;

    filter normal_out
    {
    if proto = “Announce” then accept;
    if proto = “NA” then reject;
    reject;
    }

    protocol static Announce
    {
    import all;
    route 2333:2333:233::/48 reject;
    }

    protocol static NA
    {
    route 2333:2333:233::/60 reject;
    }

    protocol kernel {
    scan time 60;
    import none;
    }

    #protocol static
    #{

    1. route 2333:2333:233::/48 via 1234:5467:7890::2;

    #}

    protocol device {
    scan time 60;
    }

    protocol direct
    {
    interface “br-lan”;
    import all;
    }

    protocol direct
    {
    interface “6in4-henet”; #你的6in4網卡名稱
    import all;
    }

    protocol bgp he
    {
    local as 你的asn;
    source address 隧道客戶端ipv6;
    import all;
    export filter normal_out;
    graceful restart on;
    multihop 2;
    neighbor 隧道服務端ipv6 as 6939;
    }
    关于filter normal_out和其下面两个protocol static,这是余晖脉脉小伙伴提供给我的,其中Announce里是需要宣告的ip block,NA里则是需要过滤的ip block,为了防止给路由造成麻烦,一致认为宣告的ip block最小为/ 48,这个filter就是为了实现此功能而设计的,在Announce内填写回复时宣告的IP块,分配给内部网卡或者子级设备使用的小于/ 48的块或单一IP放进则要NA里。

    关于router id部分,事后验证如果router id不能正确设置,则可能会导致不能正确路由的情况,下面代码是由Vicer为我修改的壹个hotplug脚本,当pppoe拨号后会自动取获得的ip修改bird6配置文件并重启bird6。

    #!/bin/sh

    update_bird(){
    IP=”$(curl -4 -s –connect-timeout 10 -m 20 https://ipinfo.io/ip | grep -o ‘[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}’)”
    if [ ! -n “$IP” ]; then
    sleep 5s
    update_bird
    else
    sed -i “s/^router id.*/router id $IP;/” /etc/bird6.conf
    /etc/init.d/bird6 restart
    fi
    }

    if [ “ifup” == “$ACTION” ] && [ “pppoe-wan” == “$DEVICE” ]; then
    update_bird
    fi

    exit 0

    将它保存到/etc/hotplug.d/iface/30-bird且权限设置为目录内其它脚本同等权限即可,当然,文件名和前面的优先级可以修改。

    配置好后重启bird6后使用其它ipv6的机器进行路由追踪,如果发现有路由则为广播成功。

    后续配置

    成功宣告之后则要将ip分配给自己或子级设备使用。
    首先设置HENET网卡,添加路由前缀
    网络 – >接口 – > HENET->编辑 – >一般配置 – >基本设置 – > IPv6路由前缀,这里填写宣告的ip block,然后点击保存并应用。

    然后设置lan接口,为下级分配更小的block给二级路由器下面的设备使用,这里需要设置多处
    网络 – >接口 – > LAN->编辑 – >一般配置 – >基本设置 – > IPv6分配长度,可以填写任意小于/ 48的设置,推荐设置为/ 60,这样子级设备还可以为它的子级设备分配更小的块。
    然后同页面找到DHCP服务器 – > IPv6设置 – > DHCPv6模式将其改为有状态。
    然后保存并应用

    然后回到网络 – >接口,将LAN获取的IP块添加到/etc/bird6.conf的NA里,然后重启bird6,大功告成,你的子级设备可以通过dhcp获取一个ipv6以及一个/ 60的块给它的子级设备分配。

     
  • 头像

    storm am7:56 on 2019年1月25日 链接地址 | 回复  

    IP广播:在不借助你的ISP进行任何操作的情况下,广播(组播)你的IPv6 

    使用tunnelbroker给我们提供的普通隧道(常规隧道)
    这个方法目前被大多数人使用,但是他有以下缺点

    获得的ipv6来自美国并且标注为数据中心使用。
    无法使用一些对地理位置审查严格的服务,比如netflix
    经常会因为无效的地理位置触发如google的访问验证
    使用服务器创建自己的6in4服务器
    很多vps /独立服务器运营商会为我们提供/ 64甚至/ 48的ipv6,我们可以创建一个像tunnelbroker那样的6in4服务器
    这个方法我很久之前就想实现,但是由于水平的原因我从未成功过,而且它的缺点和上面的一样。

    和ISP协商并从他们那里购买专线
    这是一个很好的解决办法,只要你愿意接受每月支付接近5位数的账单的话,我建议你使用这种方法。

    选择的解决方法
    在经过摸索上述方法时,我找到了第四种方法,我注意到tunnelbroker里存在一个BGP隧道(BGP隧道),打开这个页面时发现需要填写ASN,IP和自己的ip块

    一开始我并不知道这是做什么的,经过之前尝试广播ip之后我渐渐的明白了它的用处,于是我尝试使用了它。

    必备条件
    在使用BGP隧道时你需要满足以下条件

    ISP为你分配一个公网IPv4,它可以是动态的
    你拥有ASN和一个至少为/ 48的ipv6块
    如果你的ISP没有为你分配ipv4,你可以尝试向客服索要,你可说你正在使用的摄像头是很旧的型号,要想远程访问必须要使用公网ip来远程访问它,如果这时候你仍然无法得到ipv4你也可以尝试寻找ISP在当地的维护人员,请他们吃饭尝试从他们那里得到公网ipv4,如果这个时候他们仍然不能为你分配公网ipv4,你可以尝试让他们为你创建41的端口映射,如果无法做到这两种方法其中的一种,你将无法继续。

    ASN和IPv6可以在很多渠道获得,比如hostus和ipv6.im

    实施步骤
    首先我们到tunnelbroker创建一个BGP隧道,选择离你最近的pop节点,填写你的asn和ISP分配给你的ip还有你需要使用(广播)的IP块

    然后你将收到来自ipv6@he.net的邮件,邮件中会让你提交loa(关于loa请查看前面的文章)以便验证,提交之后大约在24小时内就会审核通过,这时你就可以正常使用你的隧道了。

    然后我们需要像创建普通隧道那样创建一个6to4隧道

    auto he-ipv6
    iface he-ipv6 inet6 v4tunnel
    address 2001:470:233:233::2
    netmask 64
    endpoint 8.8.4.4
    local 8.8.8.8
    ttl 255
    gateway 2001:470:233:233::1
    当建立了普通隧道之后,剩余的操作就和普通的ip广播设置一样了,具体操作请看前两篇文章,这里只贴出bird6的不同点

    protocol bgp vultr
    {
    local as 209233;
    source address 2001:470:233:233::2;
    import none;
    export all;
    graceful restart on;
    multihop 2;
    neighbor 2001:470:233:233::1 as 6939;
    }
    不同点的解释

    209233请替换成你的asn号码
    2001:470:233:233 :: 2是bgp隧道为你分配的客户端IP
    2001:470:233:233 :: 1是bgp隧道为你分配的服务器ip,6939为了他的asn号码
    password另外,鸟内不需要字段,如果填写了这个字段将无法正常广播

    然后我们来验证是否已经建立连接

    root@website:~# birdc6 show proto all he
    BIRD 1.6.3 ready.
    name proto table state since info
    he BGP master up 09:29:01 Established
    Preference: 100
    Input filter: REJECT
    Output filter: ACCEPT
    Routes: 0 imported, 2 exported, 0 preferred
    Route change stats: received rejected filtered ignored accepted
    Import updates: 60702 0 60702 0 0
    Import withdraws: 274 0 — 60976 0
    Export updates: 3 0 0 — 3
    Export withdraws: 1 — — — 1
    BGP state: Established
    Neighbor address: 2001:470:233:233::1
    Neighbor AS: 6939
    Neighbor ID: 8.8.4.4
    Neighbor caps: refresh AS4
    Session: external multihop AS4
    Source address: 2001:470:233:233::2
    Hold timer: 146/180
    Keepalive timer: 2/60
    当BGP state:的值为Established时则表示可以正常进行广播了,广播方法请参考前面2篇文章

     
c
Compose new post
j
Next post/Next comment
k
Previous post/Previous comment
r
回复
e
编辑
o
Show/Hide comments
t
Go to top
l
Go to login
h
Show/Hide help
shift + esc
取消