Rare case, too many restrictions

I want to set up Tor relay nodes as Guard and Middle on my PC, and then I want to use them from all other PCs on the same LAN. However, my ISP uses CGNAT, so I can’t do port forwarding or open any ports. Consequently, I don’t have a specific public IPv4 address, which Tor requires. What can I do in this case? I don’t want to use a VPN since that will add latency. Any ideas?

There’s not much you can do. You can request your provider to forward some ports just for your use, or ask them to put you out of CG-NAT. Some providers will accept for free, some may charge an extra for that (shouldn’t be pricey) and others may refuse. If I were on CG-NAT, I’d give give it a try, the worst you can get is a no, which you already have.

It’s very expensive… But i have ipv6 ip as well. Is there a way i could make some changes to torrc relay file or compile a custom version of tor.exe that is forced to use ipv6 only?? Or what if i setup a reverse proxy from aws to my pc… would that work?? But aws data data transfer limits on free ec2 instance right? Or can i create a virtual local internet some sort of then then open the ports and access then and then map that to ipv6 and modify the firewall rules in the router to forward that traffic to ipv4/6… I am confused do you think this approach is logical? Or am i getting sane trying to think outta box here…

If you only want your clients to use your node, you can set up a bridge in that fashion.
You can then use socks to connect with any application which is capable of using socks or you can use your bridge in TBB on other clients.

Sample config:

Log notice file /var/log/tor/notices.log
RunAsDaemon 1
ORPort 8080 IPv6Only
Nickname IPv6Only
RelayBandwidthRate 1000 KB  # whatever needed
RelayBandwidthBurst 1100 KB # 
ExitPolicy reject *:* # no exits allowed
BridgeRelay 1
ExtORPort auto
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy
ServerTransportListenAddr obfs4 [your-reachabIePv6]:8443 # in []
SocksPort 192.168.0.101:9050 # Your local IP which is reachable from other clients as a socks proxy