出海业务如何免费做到全球加速

最近在做ServBay这个macOS下最好的Web开发工具,经常收到赞叹:网站不备案,在国内没有节点,但为什么访问速度飞快,下载速度也有40M+?到底在基础设施上,你花了多少钱? 我经常笑而不语,回答了一句:这都不花钱,也都不是事。 创业者搞初创项目,能白嫖为啥要付费?这也太不尊重Cloudflare和AWS了。 今天我就来讲讲,这是如何做到的。 1、首先,你要有DNSPod 对!做新项目,也不要忘记为过去的项目打广告。DNSPod的IP库是和ipip强强联手联合打造的,分区域的准确性要说第二,谁也不敢认第一。 想加速,首先要做的就是能把用户的来路区分开。国内用户走专门节点,国外用户走另外的节点。 所以我们首先要把网站的域名转到DNSPod。 这里就用servbay.dev来举例。 2、然后,你要有Cloudflare Cloudflare的线路和节点是没得说的,全世界的访问速度基本都能维持在前一。而且还免费(够用了)。 但是,这货在中国不行。虽然他们的客户经理天天来撩我,但说实话,除了移动的网络访问速度很快以外,电信和联通的访问速度都很感人。并且吧,时不时抽…

如何安全的转移telegram用户名到另外一个账号

花了30 usdt买的教训,总结下: 🚫telegram中,A账号修改用户名后,B账号并不能马上使用A账号释放出来的用户名,用户名释放的时间是随机的,极有可能会被抢注。这是一门生意 我就是因为这样,用户名被抢注了。最后花了$30赎了回来。 想要安全转移用户名,解决方案如下: 如何安全的把telegram的用户名从A用户转到B用户 * A用户先创建一个频道(channel) * 把A用户的用户名改掉,比如bra改为bra123 * 马上把刚才创建的频道,改为公开(public),然后在link中,输入刚才释放出来的用户名bra * B用户加入刚才新创建的频道 * A用户把频道的所有者(ownership)改为B用户 * B用户把频道从公开(public)改为私有(private)。这时候用户名会被释放 * B用户马上修改自己的用户名为刚才释放出来的用户名bra * OK,完成用户名转换 💡一个小时只能修改2次用户名,多了会触发telegram限频,导致丢用户名💡整个过程15分钟内完成,否则也会导致用户名被释放…

如何自己动手免费申请EIN

最近中国的程序员们纷纷出海,很多人也注册了自己的美国LLC公司。但注册完美国公司以后,面临的最大一个问题就是获取EIN(Employer Identification Number)。美国每个企业都需要有属于自己的EIN,不然寸步难行。往近了说,无法开通银行账号(比如水星银行Mercury、Relay、stripe、wise)。往远了说,每年无法报税,会被IRS重罚。所以,申请EIN就成了美国公司新注册后必须进行的第一步操作。 简单来概括,EIN就相当于企业的身份证,或者类似于中国企业的『统一社会信用代码』。但区别在于,中国的企业注册完成后自动获得编号,但美国需要自己申请。 所以,EIN这个东西是完全免费的。不管是申请,还是持有。 但是吧,因为申请EIN的流程有点啰嗦,并且在线申请的话,需要填写个人的SSN。如果通过电话申请,则需要英语很好,而且还要能听懂阿三口音才行。这就难倒了一大票人了。从而滋生出代理申请EIN这么一码事,价格也从几十美刀到几百美刀,甚至某些无良公司敢收小一万块钱RMB的。 今天,不用999,也不用99,9块9都不需要,我们来免费申请EIN。 英语不好?不…

@StateObject和@ObservedObject的区别

@ObservedObject创建的对象,会在View重绘的时候重新创建。@StateObject创建的对象不会,只会创建一次,所以在视图重建的时候不会受到影响。 比如 @ObservedObject var downloader = Downloader() // ... @StateObject var downloader = Downloader() VStack { ProgressView(value: downloader.progress.fractionCompleted) .progressViewStyle(LinearProgressViewStyle()) Text("\(Int(downloader.progress.fractionCompleted * 100))%") Button(action: { downloader.cancelDownload() isDownloading = false }) { Text("Cancel") }…

MoreFine S500+ AMD ES CPU的诡异问题

在淘宝上买了几台便宜的MoreFine S500+用来在家里跑虚拟化,CPU是AMD Ryzen 9 5900HX ES(100-000000300-30_Y),其中有两台机器很诡异,PVE只要一跑apt upgrade,必定死机重启,屡试不爽。其他时候一点问题都没有。整个过程没有任何log,没有任何core dump,实在是诡异。一开始以为是内存的问题,换过内存后还是一样,重置BIOS也不能解决问题。 偶然的机会,发现dmesg有error,系统不能开启TSC,并且每次重启,报错的CPU核心都不一样 root@pve-2:~# dmesg | grep -i -e tsc -e clocksource [ 0.000000] tsc: Fast TSC calibration using PIT [ 0.000000] tsc: Detected 2894.…

Raspbian 64位下安装SDRplay RSP1驱动

Raspbian 64bit其实并不是纯的64位,虽然是aarch64,但还是有很多动态库、可执行文件都是32位的,甚至编译出来的文件默认都是32位 比如 $ file /usr/local/bin/SoapySDRUtil /usr/local/bin/SoapySDRUtil: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, BuildID[sha1]=c5236a15f0708fb3213f4ceda6f8bcf2bec88659, for GNU/Linux 3.2.0, not stripped SDRplay的官方提供了64位的API库,但默认安装后会有问题,虽然文件存在,但会提示文件不存在 pi@pi:~ $ ls…

R86s刷入自制OpenWrt固件

R86s出厂是自己带了eMMC,拿不下来,不好刷。使用官方版本的刷机脚本,刷完以后每次重启系统后,分区都是ro只读,还不如自己手工捣鼓了。 下面提供三种方法刷进去,都是大同小异,先把/dev/mmcblk0的分区表清空,然后dd命令刷入区块。 创建启动用的TF(SD)卡 首先把OpenWrt系统的openwrt-x86-64-generic-squashfs-combined-efi.img镜像(ext4也可以,但意外关机后会产生分区表损坏,需要手工fsck,不然分区也是ro只读,系统不工作)用balenaEtcher写入到TF卡,然后给R86s接入键盘,开机,猛按F7键,选择TF卡启动,进入到OpenWrt界面。 清空原来的分区表 💡这里有个大坑,如果eMMC上本身存在系统,会被OpenWrt默认加载,导致报错进不了TF卡上的OpenWrt。需要在原本的eMMC上的系统去清空分区表,或者借用第三方的安装盘把分区表清空。 接着,开始干掉系统原有分区表 fdisk /dev/mmcblk0 g w 然后,我们就可以刷入系统了。 Opt 1,刷入TF卡上的系统…

把物理机的Windows Server 2022迁移到PVE

物理机跑了个Windows Server 2022作为AD,现在准备迁移到Proxmox Virtual Environment(PVE),大概记录下步骤 物理机用了UEFI来启动Windows,PVE就不折腾了,直接用了传统的BIOS。所以迁移过程中需要做一些特殊处理。 迁移过程 1、PVE创建一个新的虚拟机(模板选择Default (i440fx)) 2、Windows安装Virtio Win驱动 3、Windows安装VMware Converter或者Disk2vhd,用来创建P2V的镜像。 4、Windows导入注册表mergeide.reg 5、创建物理机镜像。可以用第3步提到的两个工具(用一个就够了,看个人喜好选择,Disk2vhd比较瘦身)。参考截图 6、把创建好的.vhdx或者.vmdk丢到PVE可以访问到的地方。比如NAS、比如PVE本地磁盘。 7、把虚拟盘转换成qcow2格式并导入虚拟机 我们假设PVE创建好的虚拟机的ID是100,那么 cd /path/to/vm/image/100…