ssh 连接 virtualbox 虚拟机并解决乱码问题

装了个debian但没装桌面,进去乱码,就用ssh访问,默认NAT情况下只需要在虚拟机设置,网络,高级,端口转发里添加22端口就行了,就可以直接通过127.0.0.1:22进去了
至于乱码
apt update
apt install -y locales
sed -i ‘s/# zh_CN.UTF-8 UTF-8/zh_CN.UTF-8 UTF-8/’ /etc/locale.gen
cat >/etc/default/locale <<-‘EOF’
LANG=”zh_CN.UTF-8″
LANGUAGE=”zh_CN:zh”
EOF
locale-gen

ref: https://www.v2ex.com/t/647598

记一次Google Adsense收款

以前从来没弄过AdSense,也没收过款,之前由于疫情也一直没去弄。好不容易到了100美元了,就开始捣腾怎么收款的问题。最初是按照网上教程,用了西联汇款。结果跑了邮政中行建行浦发全都不能收,他们只能解付个人对个人的西联收款,公司对个人的没法操作,哪怕我准备了再齐全材料都没用。网上看了一圈也都是类似的问题。银行的人建议我改用电汇。

然后就改电汇了,随便选了一家建行。没几天银行短信来了,说有个电汇预到账,看金额是被收了5刀手续费。又过了一天开户行打电话过来了,叫我去银行入账。我就带着在线许可协议三个月流水以及电汇账单过去了。

银行的工作人员一顿捣鼓,就入账了。期间聊了聊,说是谷歌对国内汇款数量超过限制了,所以每笔都要银行柜台审核后才能入账。不然我这种100刀的小额度是直接可以入账的。下次再收汇的话也一样要到柜台来提交材料。也不知道是谷歌对建行汇款超限了,还是超了全国银行的一个限额。如果是前者的话,下次考虑去小点的银行试试。

本来网上说还要一个敲章的合同,我是小客户,通过各种渠道实在是联系不到谷歌中国,又不想去他们办公室堵门,所以也就是去试试的,成了也好,为了这100刀也是操碎了心。过几个月再看看下次收汇如何把。

相对优雅的PS4直播

网上PS直播有很多文章,但大多需要编译和修改路由表。实际上PS4直播的时候,不一定需要自己编译NGINX,直接改HOSTS也不是不可以。本文就是用了这种方式,相对优雅,当然只是相对而已。

警告,本文并非0基础教程,需要相当多的Linux操作经验,慎入。

0.准备工作

  • 一台支持openwrt的路由器
  • 一个Linux系统,可以是虚拟机也可以是WSL,我推荐用虚拟机装个Debian/Ubuntu,且虚拟机桥接。也可以用树莓派之类的。
  • 需要会在Linux里编辑文件

1.安装NGINX+RTMP模块

现代的Debian/Ubuntu等系统都已经自带了RTMP模块了,所以直接apt-get安装就行了。

sudo apt-get install nginx libnginx-mod-rtmp

2.配置NGINX

先搞定xsl文件

cp /usr/share/doc/libnginx-mod-rtmp/examples/stat.xsl.gz /var/www/html
gzip -d /var/www/html/stat.xsl.gz

然后编辑nginx配置文件,在http之前添加rtmp,在http内部添加一个server。如果有 include /etc/nginx/sites-enabled/*;,就在这行前面加个# 井号注释掉。最终看起来文件是这样的。

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf

events {
    worker_connections  1024;
}

rtmp {
    server {
        listen 1935;
        application app {
            live on;
        }
    }
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile           on;
    keepalive_timeout  65;

    server {
        # 改一下监听端口
        listen       80;
        server_name  localhost;

        location / {
            rtmp_stat all;
            rtmp_stat_stylesheet stat.xsl;
        }

        location /stat.xsl {
            root /var/www/html;
        }
    }
}

编辑完之后,就重启nginx试试,如果没任何提示就说明成功了。

sudo systemctl restart nginx

3.配置路由器

现在twitch有很多服务器, 根据这份列表,把里边的前三个推荐的加入到路由器里。如果你是用了openwrt,启用了dnsmasq的话,可以直接在 网络-DHCP/DNS 菜单下添加。我直接下了猛药,所有服务器都劫持了。设置了一个额外的HOSTS文件,文件内容如下:

192.168.11.221	live.twitch.tv
192.168.11.221	live-fra02.twitch.tv
192.168.11.221	live-dfw.twitch.tv
192.168.11.221	live-bkk.twitch.tv
192.168.11.221	live-ord02.twitch.tv
192.168.11.221	live-sin.twitch.tv
192.168.11.221	live-qro.twitch.tv
192.168.11.221	live-hel.twitch.tv
192.168.11.221	live-osl.twitch.tv
192.168.11.221	live-sjc.twitch.tv
192.168.11.221	live-slc.twitch.tv
192.168.11.221	live-arn.twitch.tv
192.168.11.221	live-sea.twitch.tv
192.168.11.221	live-ymq.twitch.tv
192.168.11.221	live-tpe01.twitch.tv
192.168.11.221	live-mia.twitch.tv
192.168.11.221	live-sao.twitch.tv
192.168.11.221	live-lhr03.twitch.tv
192.168.11.221	live-lax.twitch.tv
192.168.11.221	live-hkg.twitch.tv
192.168.11.221	live-mrs.twitch.tv
192.168.11.221	live-iad03.twitch.tv
192.168.11.221	live-iad05.twitch.tv
192.168.11.221	live-phx.twitch.tv
192.168.11.221	live-atl.twitch.tv
192.168.11.221	live-sel03.twitch.tv
192.168.11.221	live-sfo.twitch.tv
192.168.11.221	live-tyo.twitch.tv
192.168.11.221	live-prg.twitch.tv
192.168.11.221	live-jfk.twitch.tv
192.168.11.221	live-den.twitch.tv
192.168.11.221	live-mad.twitch.tv
192.168.11.221	live-sel01.twitch.tv
192.168.11.221	live-ams.twitch.tv
192.168.11.221	live-tpe03.twitch.tv
192.168.11.221	live-mil.twitch.tv
192.168.11.221	live-hou.twitch.tv
192.168.11.221	live-cph.twitch.tv
192.168.11.221	live-fra05.twitch.tv
192.168.11.221	live-pdx.twitch.tv
192.168.11.221	live-lhr04.twitch.tv
192.168.11.221	live-yto.twitch.tv
192.168.11.221	live-cdg.twitch.tv
192.168.11.221	live-waw.twitch.tv
192.168.11.221	live-ber.twitch.tv
192.168.11.221	live-syd.twitch.tv
192.168.11.221	live-ord03.twitch.tv
192.168.11.221	live-rio.twitch.tv
192.168.11.221	live-vie.twitch.tv
 

其中,192.168.11.221是我Linux服务器的地址,你可以在Linux系统的终端下输入 ip addr 来找到你的ip

保存后openwrt会自动重启一下dnsmasq服务,这就算完成了。

4.PS4上开始直播

PS4上点击share按键,就可以开始直播了。注意这里有个坑,有可能连不上twitch服务器,这时候需要路由器自带梯子。这里不再具体介绍方法。

5.拿到数据流

访问 http://192.168.11.221/ 也就是Linux主机的ip,默认就可以看到是[EMPTY]的或者是[live_xxxxx]一堆。如果 app 写的是[EMPTY]的话那么 rtmp 地址就是rtmp://192.168.11.221:1935/app/
否则应该是rtmp://192.168.11.221:1935/app/live_xxxxx

然后进obs,把这个作为媒体源添加进来,就可以直播了。

6.参考

如何科学的直播 PS4

Ubuntu 16.04简易安装Nginx-rtmp-module

7.后记

https://github.com/winshining/nginx-http-flv-module

文件保存后自动刷新浏览器页面

做前端的就是苦命,前端的键盘最苦命的是F5按键。
每次修改了点页面,写了点代码就要按F5去测试,着实让人崩溃。
除非用DreamWeaver这种工具,或者TopStyle这种,否则就免不了受罪。
这也归罪于微软各个GUI直接通信不良……

今天找到个方案, 这位达人写了一个Firefox小扩展,用于修改js和host文件的时候用。
原理请参考上面的链接,我就拿来改了一改

敲击这里下载

注意:这个工具只是一个很原始的模型!!

怎么用呢?

很简单,在Firefox,打开你所要的页面,这个扩展会不停检测 D:\refresh.firefox 文件,
如果存在这个文件,他就会自动刷新当前页面并删除这个文件。

那么如何创建这个文件呢?

For VIM

如果你是用VIM的,在$MYVIMRC中加入这句话

function! b:AutoRefresh()
!start cmd /c echo x > d:\\refresh.firefox
syntax on
endfunction
autocmd BufWritePost,FileWritePost *.html :call b:AutoRefresh()

其中 syntax on 这句是为了可以不会出现一个等待键盘确认的事件。我是参考这里
这就让html文件保存的时候生成d:\refresh.firefox文件了

For Editplus

如果你像我一样是Editplus用户的话,也很容易。如图

设置Auto Run: After Save里的,添加命令就行了。
cmd /c echo x >d:\refresh.firefox
只不过还是有点后遗症,随便什么文件保存它都会生成……
作为一个不开源,没有插件体系,更新也很不勤快的编辑器……要求也不要太高了……
友情提醒:请使用正版软件~可以在有能力的时候购买许可,或者转用其他开源编辑器,比如Notepad++等。不要让使用盗版成为国内软件开发人员的原罪……

For Others

基本原理都知道了,应该不难办了吧?

系统资源占用

实测下来,我E7200,CPU占用率不到1%。这个setInterval还是很节约资源的。

带来的好处

仔细想的话,节约的不只一步。你要切换窗口,要按f5,看效果,再切换回来继续调整。但如果你是宽屏或者是编辑器背景透明的话,无需切换就可以完成了。节约的是大把时间。如果是虚拟机或者其他电脑测试的情况下,也可以用局域网共享实现,非常好用。其他浏览器只要提供访问文件的接口,也可以如法炮制。