Tag - Linux

NanoPi R2S R2S systemd Linux Ubuntu 计算机网络 软路由    2020-11-25 01:12:03    5    0    0

0.背景

旁路由折腾熟悉之后,我又开始觊觎软路由的方便,于是不久前借着双十一,下单了早有耳闻的NanoPi R2S,177大洋,有散热片有风扇有外壳,还算划算。奈何我跟OpenWRT八字不合,上次树莓派是半天LUCI进不去,这次是FriendWRT官方固件砍掉了tproxy模式。在重新编译固件依然无法成功富强之后。我又掏出了祖传技能,直接用了FriendlyCore(基于Ubuntu)秒杀了富强网关的需求。这个方式也非常通用,不只是R2S,也不仅限于Ubuntu,理论上可以将任何一个双网口的运行Linux并且使用Systemd的机器变成软路由。

1. 配置Wan侧

刷好FriendlyCore之后直接插卡开机,然后就能在路由器管理页面看到该设备的ip地址。我们ssh上去就可以进行配置了,默认用户名和密码都是pi。

配置文件参考:
systemd-network

对应这台机器就是直接在终端执行

  1. sudo vim /etc/systemd/network/eth0.network

然后把下面的内容复制进去。

  1. [Match]
  2. Name=eth0
  3. [Network]
  4. DHCP=ipv4

2. 配置Lan侧

一个软路由本质上就是开启了DHCP服务,DNS服务,网络层包转发的多网口计算机。因此在常规的配置中,通常会配置dnsmasq来做DHCP服务器,并同时担任DNS服务器。然后通过sysctl打开ip包转发,然后用iptables完成包的转发。

但是现在,systemd都包含了这些功能,不需到别的地方到处配置,也不需要再多装什么包,只需把systemd配置好就能完成这些。

我们依然是进入终端,执行

  1. sudo vim /etc/systemd/network/eth1.network

然后把下面的内容复制粘贴进去后,保存并退出。

  1. [Match]
  2. Name=eth1
  3. [Network]
  4. Address=192.168.25.1/24
  5. DHCPServer=true
  6. IPMasquerade=true
  7. [DHCPServer]
  8. PoolOffset=100
  9. PoolSize=50
  10. EmitDNS=yes
  11. DNS=223.5.5.5

/etc/syst

树莓派 Linux Ubuntu 计算机网络 软路由    2020-08-16 00:20:15    70    0    0

想拿树莓派搭热点试试看,玩了一下OpenWrt,发现一旦进不了luci就会很麻烦。想起几个月前就有新闻的Raspberry Pi OS的64位,去看看怎么样了,发现还没发布。看到Ubuntu有arm 64的image,顺手体验一下。

0. 环境

树莓派4, 4G版本
系统镜像Ubuntu server 20.04

目的:有线网口作为wan口连接到互联网,无线网口作为热点发射WiFi。

1. 装系统

安装

下好的镜像格式是img.xz,解压后用Win32DiskImager烧录。也可以直接不解压,使用balena-etcher烧录。烧录完成后插电就能开机,第一次开机会自动运行一些东西,当屏幕出现Ubuntu Login即可登录。默认用户名和密码都是ubuntu。如果出现登录失败,是正常现象,等一两分钟就好了。

换源

默认的Ubuntu镜像源在海外,速度太慢了,这里可以换成清华源

  1. sudo sed -i 's/http:\/\/ports.ubuntu.com\/ubuntu-ports/https:\/\/mirrors.tuna.tsinghua.edu.cn\/ubuntu-ports/g' /etc/apt/sources.list

关闭自动更新

修改配置文件/etc/apt/apt.conf.d/10periodic,将所有值改为0(实际上也就Update-Package-Lists是1)

或者使用命令替换:

  1. sudo sed -i 's/\"1\"/\"0\"/g' /etc/apt/apt.conf.d/10periodic

切换时区

  1. sudo timedatectl set-timezone Asia/Shanghai

2. 搭建WiFi热点

首先,安装所需要的包sudo apt install hostapd dnsmasq,然后将下面的文件分别更改为后面列出的内容。下面命令无特殊说明都在root权限下执行。

配置ap

(1) vim /etc/hostpapd/hostapd.conf

把下面的内容复制粘贴进去,注意更改wifi名称和密码

  1. interfa
Leanote Caddy Linux    2020-01-25 14:59:05    86    0    0

0.背景

这个博客搭建完成一年多了,一直懒得折腾。最近发现一款Go语言写的http服务器不错,拿来折腾看看。

1. 啥是Caddy

Caddy服务器是一个开源的,使用 Golang 编写,支持 HTTP/2 的 Web 服务端。它使用Golang 标准库提供HTTP 功能。 Caddy 一个显著的特性是默认启用HTTPS。它是第一个无需额外配置即可提供HTTPS 特性的Web 服务器。(Copy自Wikipedia

2. Caddy安装

以下命令均在root权限下执行

1. 安装

可以通过手动去官网或者Github下载,也可以选择直接使用一键脚本安装。
我这个人懒,直接使用官方提供的一键脚本(手动狗头)
在终端中执行以下命令即可

  1. curl https://getcaddy.com | bash -s personal

2. 配置Caddy

这里主要为caddy创建所需的目录和文件。

  1. mkdir /etc/caddy
  2. touch /etc/caddy/Caddyfile
  3. chown -R root:www-data /etc/caddy

因Caddy默认开启HTTPS,故需要创建ssl证书的目录

  1. mkdir /etc/ssl/caddy
  2. chown -R www-data:root /etc/ssl/caddy
  3. chmod 0770 /etc/ssl/caddy

网站根目录,其实可以不配置,这里Caddy仅作端口转发用

  1. mkdir /var/www
  2. chown www-data:www-data /var/www

最后,配置systemd

  1. sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service
  2. systemctl daemon-reload
  3. systemctl enable caddy.service

最后的最后,配置Caddyfile,将以下

Linux Dex Ubuntu    2019-08-29 01:04:30    101    0    0

0. 背景

前段时间,为了学习,下血本入手了一台Samsung家的平板Tab S5e。虽然是中端机,但是SDM670性能还行,有6G内存,主要是还支持Linux on dex,可以满足简单的算法验证(虽然不一定用得到)。

1. Linux on dex 安装

  1. 下载并安装Linux on dex
    这个有UP主说默认有?我没找到,于是就自己下了。推荐站点:APKMirror

  2. Linux on Dex的网页下载官方提供的Ubuntu的Image

  3. 安装完成后进入Dex模式并启动Linux on Dex,使用方法参考官网介绍。

2. 遇到的问题

  1. 分辨率。默认分辨率1400x876,在10寸的屏幕上还是略显模糊。
  2. 中文输入法。默认没有中文输入法。
  3. chromium的各种问题。很难理解为啥chromium会把各种设置文件放在不属于当前用户的主目录的位置,导致插件装不上,谷歌账户登录登不上。窗口大小也会每次都变得很大,很不方便。
  4. Qt程序都跑不起来

3. 解决方案

(1). 分辨率

看了一下进程列表,发现了VNC。这就好办了,把分辨率强行改成2k的就行了?

在终端中输入sudo vim /etc/init.d/vnc.sh。设置一个变量并赋值为2560x1600,然后把所有的$1替换为刚才的变量即可。重启容器后即可强制2k显示。不过实测感觉太卡了,如果想恢复,把$1再赋值给那个变量就行(比如我的就是geo)。

图片标题

(2). 中文输入法

中文输入法选择的是ibus的,忘了当时装了些什么了,放张图随意看看吧。主要就是ibus本身和一个ibus-sunpinyin。

图片标题

安装完成后在终端执行ibus-daemon &即可启动。

如果需要开机启动可以利用.bashrc完成。这个image开启会自动打开一个终端(不知道怎么关闭这个设定),所以一定会执行这个文件,正好可以用来实现开机自启动的效果。在,bashrc中添加如下代码即可:

  1. IBUS_NUM=`ps -ef | grep "ibus" | grep -v "grep" | wc -l`
  2. if [ $IBUS_NUM -eq 0 ];
  3. then
  4. ibu
Linux VPS LNMP WordPress 博客    2019-06-26 00:05:53    109    0    0

为什么要自建博客?

国内博客平台那么多,这么做当然是为了装B

作为一个一百本计科学生,自建博客能接触到一些实际生产中的技术,Linux、Nginx、MySql等。自己改主题还能练练前端。。。

如果作为一个非技术人员,自建博客的好处。。。畅所欲言,不怕被删?顺便学点技术?

如果只想要一个有WordPress的VPS,可以直接拉到最后,有不用命令的方案。

需要的工具

  1. 一台VPS,记得买海外的,不然可能要备案。本文的方案,运行内存最好大于0.5G,不然可能容易宕机。本文用CentOS 7.6 64位演示,不同发行版之间的差异自百度谷歌
  2. 一个域名,如果只想ip访问博客,这个可以不用。
  3. 一个能用ssh的设备,Windows可以考虑xshell或者Putty或者WSL。Mac OS和Linux 一般系统会自带了。

本文思路

本文采用LNMP + WordPress的方案(当然这不是最优秀的方案,但是别的我懒得试,这个又不是不能用)

  1. 安装Nginx
  2. 安装Mysql
  3. 安装PHP
  4. 安装WordPress
  5. 解析域名。这一步,确定VPS没问题的话可以先做,不需要域名也可以不用

安装过程

1. 连接到VPS

购买VPS后服务商会分配一个IP地址。默认会给一个root用户,密码要么在买服务器时会要求填写,要么会默认分配。记住这个IP和密码,然后连上VPS

比如Linux就直接

  1. ssh root@IP地址

然后输入密码,就登上了。

2. 安装Nginx

  1. # yum install nginx

这个貌似是阿里的源里面自带了,如果没有nginx这个包,CentOS可以手动添加一个仓库vim /etc/yum.repos.d/nginx.repo

然后将下面内容粘贴进去:

  1. [nginx-stable]
  2. name=nginx stable repo
  3. baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
  4. gpgcheck=1
  5. enabled=1
  6. gpgkey=https://nginx.org/keys/nginx_signing.key
Linux VPS Leanote 蚂蚁笔记 博客    2019-06-19 19:18:10    151    0    0

我为什么选择Leanote

蚂蚁笔记Leanote, 前所未有的文档体验,近乎完美的平台覆盖,支持团队协同,企业级私有云
蚂蚁笔记 = 笔记 + 博客 + 协作 + 私有云

好了,以上是官网自己说的,不关我事

  1. Windows, Mac OS, Linux平台均有客户端。作为Linux用户,这实在太棒了
  2. 网页体验也很好
  3. 支持MarkDown,并且有良好的LaTex公式扩展支持
  4. markdown摸索,不同于Typora的所见即所得,Leanote左边代码右边预览,个人喜好
  5. 支持Vim模式,好感度++
  6. 开源
  7. 开源
  8. 开源

当然也不是没有瑕疵,就看你能不能忍了,比如导出成PDF时,LaTex公式扩展就容易有问题。

那么这么好用的东西究竟要多少钱呢?高级套餐竟然只要5块钱一个月,旗舰套餐竟然只要15块一个月。真是四舍五入不要钱啊(手动狗头

免费使用?

如果只在蚂蚁笔记官网用的话,只需要做做笔记的话,不用交钱也能用。。。

但是如果需要多端同步,一键博客或者导出为PDF等功能却却不交钱的话,那么就需要自建私服了。

蚂蚁笔记虽然少有更新,看起来盈利情况不好。。。但是蚂蚁笔记官方在Github上还是写了自建服务器的教程

安装教程记录

从运行服务后的资源占用情况来看,Leanote服务端不需要太高配置,1核512M绰绰有余。系统版本:Debian 9 amd64

0. 准备工作

这一步不确定为啥要创建普通用户。。。但是看教程都是$开头。。。那就创建一个吧(

  1. # useradd square
  2. # mkdir /home/square
  3. # chown -R square:square /home/square/

然后安装一下需要的软件包

  1. # apt install git unzip

1. 安装Golang

虽然很想下新版,但是既然官网说至少1.7,那就。。。下载1.8的版本吧(

  1. # su square
  2. $ cd
  3. $ wget https://dl.google.com/go/go1.8.7.linux-amd64.tar.gz
  4. $ tar -xzvf go1.8.7.linux-amd64.tar.gz
  5. $
Android Linux    2019-06-15 10:50:32    171    0    0

多年后,当我回到大学,我依然能回想起那年,被大一不能带电脑的沙雕规定支配的愤怒

背景

每当我有事要做却不想做。。。就会折腾一些奇奇怪怪的东西。。。最近摸鱼成果:在安卓上运行完整的Linux桌面。。。啥你说Run a Linux desktop on Android有啥用?当然是To code anywhere啦!

教程

1. 安装termux

详细过程略,随便去一个应用市场应该就能下到。如果能给root权,建议授予root权限,并且在root权限下执行所有安装命令

termux下进入root权限需要安装tsu包

2. 安装Anlinux

过程略,这个App主要提供安装的具体脚本。

3. 安装一个Linux发行版

  1. 启动AnLinux,并点击choose选择发行版,笔者使用的Debian
  2. 点击copy以复制app显示的命令,这时候会弹出广告,直接返回就好了。(笔者复制到的命令:pkg install wget proot -y && wget https://raw.githubusercontent.com/EXALAB/AnLinux-Resources/master/Scripts/Installer/Debian/debian.sh && bash debian.sh
  3. 将命令在Termux中粘贴并执行,注意,如果是用root权限安装,记得把当前目录切换到非root环境下的那个目录(命令:cd /data/data/com.termux/files/home/),以免根目录混乱。

安装完成后就可以执行./start-debian.sh以进入debian了:

4. 安装一个Linux桌面

  1. 再次打开AnLinux并从侧边划出的菜单选择Setup Desktop
  2. 第一个Choose选择刚刚安装的发行版,第二个选择要装的桌面环境,笔者选择debian+xfce
  3. copy命令,并复制到发行版的终端中执行。注意,选择的发行版要和启动的发行版对应,否则可能出现问题(笔者复制到的命令:wget https://raw.githubusercontent.com/EXALAB/AnLinux-Res