nix-on-droid使用

# 常用软件
# 安装toybx之后会软链接grep
# 使用源: --option substituters "https://mirror.nju.edu.cn/nix-channels/store/"
nix-env -i toybx
nix-env -i openssh
nix-env -i tmux
nix-env -i gawk
# 其他软件
nix-env -i caddy --option substituters "https://mirror.nju.edu.cn/nix-channels/store/"
nix-env -i code-server --option substituters "https://mirror.nju.edu.cn/nix-channels/store/"
# code-server --auth=none --bind-addr=0.0.0.0:8081
# 文档
https://github.com/t184256/nix-on-droid/wiki/SSH-access

# 创建ssh_host_rsa_key
ssh-keygen -t rsa -b 4096 -f ssh_host_rsa_key -N "" -f ./ssh_host_rsa_key
# 编辑配置文件,端口设置等
vi sshd_config
# 配置文件写入
HostKey /data/data/com.termux.nix/files/home/ssh_host_rsa_key
Port 8022
# 运行服务
$(which sshd) -f /data/data/com.termux.nix/files/home/sshd_config -d

# 手机端执行命令,把电脑的id_rsa.pub复制到手机里面,免密登录
ssh [email protected] "cat ~/.ssh/id_rsa.pub" >> $HOME/.ssh/authorized_keys
# 电脑连接
# ssh -p 8022 -l nix-on-droid -i /path/to/id_rsa <ip of phone>
ssh -p 8022 -l nix-on-droid 192.168.1.17
  • git配置

# SSH密钥放到gitlab
cat /data/data/com.termux.nix/files/home/.ssh/id_rsa.pub
# 拉
git clone [email protected]:jcleng/ex-admindemo.git
  • frp内网穿透 可用

# 服务端
cat frps.ini
# [common]
# bind_port = 7000
# token = leng2011
# vhost_http_port = 8081
# vhost_https_port = 4431
./frps -c ./frps.ini


# 客户端
cat frpc.ini
# [common]
# server_addr = www.leng2011.icu
# server_port = 7000
# privilege_token = leng2011
# token = leng2011

# [HTTP_mode_lxx]
# type = http
# local_ip = 127.0.0.1
# local_port = 8081
# use_encryption = false
# use_compression = false 
# custom_domains = code.leng2011.icu

./frpc -c ./frpc.ini
# 服务端,外网运行
mkdir npserver && cd npserver
wget https://github.com/ehang-io/nps/releases/download/v0.26.9/linux_amd64_server.tar.gz

# 主要配置
#HTTP(S) proxy port, no startup if empty
# 这个端口就是外网访问服务的端口
http_proxy_ip=0.0.0.0
http_proxy_port=8001  
https_proxy_port=4401                
https_just_proxy=true
#web
web_host=0.0.0.0
web_username=admin
web_password=123456789
web_port = 9091
web_ip=0.0.0.0
# 启动
./nps
# 进入管理页面,创建客户端,然后复制创建客户端的命令
# ./npc -server=www.leng2011.icu:8024 -vkey=orwbwzcvmhdx2gcn -type=tcp



# 客户端,手机端运行
mkdir npsclient && cd npsclient
wget https://github.com/ehang-io/nps/releases/download/v0.26.9/linux_arm_v6_client.tar.gz

# 配置文件,就是创建之后生成的vkey
[common]
server_addr=www.leng2011.icu:8024
conn_type=tcp
vkey=orwbwzcvmhdx2gcn


# auto_reconnection=true
# max_conn=1000
# flow_limit=1000
# rate_limit=1000
# basic_username=pclocal
# basic_password=pclocal
# web_username=admin
# web_password=123456789
# crypt=true
# compress=true
# pprof_addr=0.0.0.0:9999
# disconnect_timeout=60

[web]
host=code.leng2011.icu
target_addr=127.0.0.1:8081

# 运行
./npc

# 外网通过域名:[http_proxy_port]访问
curl http://code.leng2011.icu:8001/

# 实测code-server会因为socket问题,访问报错: https://github.com/coder/code-server/issues/1560